{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用户和活动关联关系处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "只保留训练和测试数据中的用户和活动"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入必要的包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#保存数据\n",
    "import _pickle\n",
    "\n",
    "import itertools\n",
    "\n",
    "#处理字符串\n",
    "import datetime\n",
    "import numpy as np\n",
    "import scipy.io as sio\n",
    "import scipy.sparse as ss\n",
    "\n",
    "#相似度/距离\n",
    "import scipy.spatial.distance as ssd\n",
    "\n",
    "from collections import defaultdict\n",
    "from sklearn.preprocessing import normalize"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "number of uniqueUsers :3391\n",
      "number of uniqueEvents :13418\n"
     ]
    }
   ],
   "source": [
    "uniqueUsers = set()\n",
    "uniqueEvents = set()\n",
    "\n",
    "eventsForUser = defaultdict(set)\n",
    "usersForEvent = defaultdict(set)\n",
    "\n",
    "for filename in [\"./data/train.csv\", \"./data/test.csv\"]:\n",
    "    f = open(filename, 'r')\n",
    "    \n",
    "    f.readline().strip().split(\",\")\n",
    "    \n",
    "    for line in f:\n",
    "        cols = line.strip().split(\",\")\n",
    "        uniqueUsers.add(cols[0])\n",
    "        uniqueEvents.add(cols[1])\n",
    "    f.close()\n",
    "\n",
    "\n",
    "n_uniqueUsers = len(uniqueUsers)\n",
    "n_uniqueEvents = len(uniqueEvents)\n",
    "\n",
    "print(\"number of uniqueUsers :%d\" % n_uniqueUsers)\n",
    "print(\"number of uniqueEvents :%d\" % n_uniqueEvents)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'689961313',\n",
       " '2949537983',\n",
       " '569536605',\n",
       " '2162037984',\n",
       " '1323529412',\n",
       " '999268198',\n",
       " '373631588',\n",
       " '1941314046',\n",
       " '4005906279',\n",
       " '3041705231',\n",
       " '4276320842',\n",
       " '730373215',\n",
       " '4125376571',\n",
       " '3166414361',\n",
       " '1747042580',\n",
       " '2193628344',\n",
       " '1001062210',\n",
       " '2346084629',\n",
       " '2712755708',\n",
       " '2425859426',\n",
       " '1427626481',\n",
       " '2086869786',\n",
       " '1641960627',\n",
       " '4026562594',\n",
       " '3734822391',\n",
       " '2563679078',\n",
       " '770336801',\n",
       " '3208908819',\n",
       " '1580848851',\n",
       " '1016099896',\n",
       " '3849582471',\n",
       " '2489551967',\n",
       " '168520465',\n",
       " '3261632504',\n",
       " '2681199273',\n",
       " '2798769441',\n",
       " '2910006718',\n",
       " '2056169186',\n",
       " '3199843944',\n",
       " '2157224192',\n",
       " '3186268838',\n",
       " '934187073',\n",
       " '2023721073',\n",
       " '2272113940',\n",
       " '3389539441',\n",
       " '870307659',\n",
       " '4107349498',\n",
       " '4207448575',\n",
       " '41934198',\n",
       " '3269471699',\n",
       " '942095316',\n",
       " '609331956',\n",
       " '3410532659',\n",
       " '265212492',\n",
       " '293887296',\n",
       " '3076344276',\n",
       " '377835263',\n",
       " '3384327553',\n",
       " '2825444746',\n",
       " '3000809568',\n",
       " '809834239',\n",
       " '1449039754',\n",
       " '2185852179',\n",
       " '4111854243',\n",
       " '355445705',\n",
       " '2985391759',\n",
       " '2638473114',\n",
       " '3110482182',\n",
       " '3913824397',\n",
       " '1053832375',\n",
       " '3990579831',\n",
       " '1853545080',\n",
       " '603763318',\n",
       " '1130967213',\n",
       " '3601181201',\n",
       " '3851487388',\n",
       " '3481169628',\n",
       " '2920617215',\n",
       " '3299562450',\n",
       " '210626346',\n",
       " '620032149',\n",
       " '1788141082',\n",
       " '2169945834',\n",
       " '3462246595',\n",
       " '3983124874',\n",
       " '3554343310',\n",
       " '1144485498',\n",
       " '2722906127',\n",
       " '3968108639',\n",
       " '2034536037',\n",
       " '3427263623',\n",
       " '1536104641',\n",
       " '3102820911',\n",
       " '2222162186',\n",
       " '253594379',\n",
       " '2659357596',\n",
       " '3148555709',\n",
       " '3723896394',\n",
       " '2421584601',\n",
       " '2490592488',\n",
       " '2515029406',\n",
       " '4099439378',\n",
       " '2123040565',\n",
       " '1860318569',\n",
       " '4088211339',\n",
       " '2166518457',\n",
       " '2300457037',\n",
       " '4156591803',\n",
       " '1732859563',\n",
       " '400738124',\n",
       " '3348106292',\n",
       " '1724694030',\n",
       " '2926898853',\n",
       " '3493543279',\n",
       " '1914182220',\n",
       " '4085088124',\n",
       " '3937992703',\n",
       " '296271448',\n",
       " '1832146052',\n",
       " '2711152367',\n",
       " '1747091728',\n",
       " '3156258711',\n",
       " '2842187594',\n",
       " '3904408941',\n",
       " '3261647162',\n",
       " '307071731',\n",
       " '1336664122',\n",
       " '776020237',\n",
       " '743802819',\n",
       " '1038432983',\n",
       " '3395257600',\n",
       " '4141924620',\n",
       " '4122118697',\n",
       " '3839562998',\n",
       " '2927772127',\n",
       " '249918369',\n",
       " '2440023887',\n",
       " '141849067',\n",
       " '3491804473',\n",
       " '1296420014',\n",
       " '3180412264',\n",
       " '3220398573',\n",
       " '555631167',\n",
       " '3464554032',\n",
       " '1115244043',\n",
       " '3598881287',\n",
       " '458097400',\n",
       " '1602963012',\n",
       " '3047819005',\n",
       " '193113796',\n",
       " '2129690960',\n",
       " '4135589149',\n",
       " '1548827068',\n",
       " '1025593498',\n",
       " '3042642967',\n",
       " '2577093097',\n",
       " '1049843964',\n",
       " '1969578305',\n",
       " '3751606951',\n",
       " '2251800772',\n",
       " '2864899561',\n",
       " '1887766017',\n",
       " '3971863644',\n",
       " '3536031836',\n",
       " '2328301807',\n",
       " '2990855864',\n",
       " '1954193338',\n",
       " '1953311106',\n",
       " '1346837558',\n",
       " '642317092',\n",
       " '4081761804',\n",
       " '1415268912',\n",
       " '4075466480',\n",
       " '1781308359',\n",
       " '3603006634',\n",
       " '1718898264',\n",
       " '3089564924',\n",
       " '1757951758',\n",
       " '3221698850',\n",
       " '2212919969',\n",
       " '2391596358',\n",
       " '316066613',\n",
       " '683588589',\n",
       " '3550832930',\n",
       " '1578153876',\n",
       " '1805653308',\n",
       " '38985694',\n",
       " '1623287180',\n",
       " '3220841218',\n",
       " '659447721',\n",
       " '3918374668',\n",
       " '237595480',\n",
       " '2959872768',\n",
       " '4009496977',\n",
       " '1626755496',\n",
       " '1369905557',\n",
       " '986039272',\n",
       " '2614389627',\n",
       " '1615336827',\n",
       " '2584536356',\n",
       " '1579613783',\n",
       " '2282422131',\n",
       " '2927241033',\n",
       " '1266271629',\n",
       " '3519404949',\n",
       " '3221482892',\n",
       " '2566144998',\n",
       " '3647725503',\n",
       " '158531231',\n",
       " '2128672319',\n",
       " '3239836164',\n",
       " '1101972092',\n",
       " '2875543516',\n",
       " '3441266811',\n",
       " '2332715028',\n",
       " '691612308',\n",
       " '4226575687',\n",
       " '870439648',\n",
       " '2233880590',\n",
       " '1544537243',\n",
       " '659725808',\n",
       " '3408810544',\n",
       " '294167146',\n",
       " '699420462',\n",
       " '3312901615',\n",
       " '2500150280',\n",
       " '384269001',\n",
       " '178517662',\n",
       " '358368837',\n",
       " '583119832',\n",
       " '403467810',\n",
       " '1513532936',\n",
       " '3890676452',\n",
       " '1879459765',\n",
       " '1066251866',\n",
       " '3252326922',\n",
       " '2217567238',\n",
       " '662608699',\n",
       " '4165482530',\n",
       " '279699155',\n",
       " '611059554',\n",
       " '2858284447',\n",
       " '3963277827',\n",
       " '1628172447',\n",
       " '143093592',\n",
       " '2282257791',\n",
       " '2925400415',\n",
       " '3031311007',\n",
       " '4051263407',\n",
       " '3766417922',\n",
       " '4195841083',\n",
       " '2204029945',\n",
       " '181961047',\n",
       " '3504006486',\n",
       " '1148091006',\n",
       " '272165392',\n",
       " '2202271093',\n",
       " '1093568005',\n",
       " '721089780',\n",
       " '3255013048',\n",
       " '1809934947',\n",
       " '3444786385',\n",
       " '122826603',\n",
       " '3892760681',\n",
       " '3601021922',\n",
       " '540360566',\n",
       " '552316934',\n",
       " '2501052021',\n",
       " '3376295099',\n",
       " '1109967945',\n",
       " '2764881224',\n",
       " '400629571',\n",
       " '2858760089',\n",
       " '4116824604',\n",
       " '3981819420',\n",
       " '3348417635',\n",
       " '964184183',\n",
       " '3145229913',\n",
       " '2932100756',\n",
       " '2504328739',\n",
       " '4195660981',\n",
       " '3641159022',\n",
       " '4197193550',\n",
       " '944898886',\n",
       " '2916716118',\n",
       " '3275450415',\n",
       " '3261535803',\n",
       " '2054531858',\n",
       " '2021435753',\n",
       " '2278013791',\n",
       " '16454810',\n",
       " '2827067982',\n",
       " '351713549',\n",
       " '2723711433',\n",
       " '3240223983',\n",
       " '1018886228',\n",
       " '2587246668',\n",
       " '2138239477',\n",
       " '1290399197',\n",
       " '2980760895',\n",
       " '576776993',\n",
       " '4157365314',\n",
       " '1859538565',\n",
       " '2507955484',\n",
       " '97062150',\n",
       " '2817061625',\n",
       " '2326463380',\n",
       " '2491957982',\n",
       " '1071319145',\n",
       " '3317343091',\n",
       " '1486465606',\n",
       " '4164388326',\n",
       " '2505058685',\n",
       " '137002204',\n",
       " '1317057097',\n",
       " '427369081',\n",
       " '2513652558',\n",
       " '1213367737',\n",
       " '1319081165',\n",
       " '3861589862',\n",
       " '2863143805',\n",
       " '3188659428',\n",
       " '630652349',\n",
       " '1583577411',\n",
       " '620761021',\n",
       " '3205053921',\n",
       " '1701323236',\n",
       " '2022846287',\n",
       " '491496715',\n",
       " '3120509854',\n",
       " '3988097489',\n",
       " '3445686240',\n",
       " '2242768450',\n",
       " '3198823658',\n",
       " '504326263',\n",
       " '3061307316',\n",
       " '2464597212',\n",
       " '1112899728',\n",
       " '1233124121',\n",
       " '4067602271',\n",
       " '1186383301',\n",
       " '2493566825',\n",
       " '814715283',\n",
       " '851286067',\n",
       " '2724319931',\n",
       " '3779883288',\n",
       " '613747359',\n",
       " '1392003365',\n",
       " '203456139',\n",
       " '351801772',\n",
       " '2127416756',\n",
       " '2256989025',\n",
       " '1945364081',\n",
       " '50457238',\n",
       " '2318415276',\n",
       " '1384880491',\n",
       " '45139176',\n",
       " '1421630185',\n",
       " '3811264923',\n",
       " '197344023',\n",
       " '4202112938',\n",
       " '233871977',\n",
       " '3939277895',\n",
       " '2864836500',\n",
       " '654235318',\n",
       " '2491651409',\n",
       " '3044183470',\n",
       " '3964170614',\n",
       " '3349277777',\n",
       " '1258740073',\n",
       " '3102057813',\n",
       " '3969445925',\n",
       " '1710009181',\n",
       " '1060747655',\n",
       " '3104132371',\n",
       " '1474775097',\n",
       " '3477857993',\n",
       " '3147653776',\n",
       " '70585535',\n",
       " '2932861723',\n",
       " '211046503',\n",
       " '3598550965',\n",
       " '1374205441',\n",
       " '1082691947',\n",
       " '3647778578',\n",
       " '2610677742',\n",
       " '928375715',\n",
       " '2301837429',\n",
       " '2041677127',\n",
       " '3787931088',\n",
       " '2467980416',\n",
       " '2086141202',\n",
       " '915901561',\n",
       " '2703461171',\n",
       " '2288466976',\n",
       " '3815063730',\n",
       " '550625442',\n",
       " '1748492203',\n",
       " '604530209',\n",
       " '2495110802',\n",
       " '3810743959',\n",
       " '457456094',\n",
       " '2691223445',\n",
       " '2860912043',\n",
       " '2635167233',\n",
       " '2971846635',\n",
       " '1538685648',\n",
       " '2057654985',\n",
       " '4012638060',\n",
       " '3156650528',\n",
       " '4001997352',\n",
       " '3062811490',\n",
       " '3371598262',\n",
       " '393035612',\n",
       " '1210853041',\n",
       " '1422103142',\n",
       " '2694809416',\n",
       " '4048868881',\n",
       " '1044598291',\n",
       " '4036343234',\n",
       " '3926920467',\n",
       " '3065586006',\n",
       " '2702656559',\n",
       " '2872854546',\n",
       " '2286292570',\n",
       " '2873615520',\n",
       " '594741805',\n",
       " '965181412',\n",
       " '4291083982',\n",
       " '2520120463',\n",
       " '4264591455',\n",
       " '734292380',\n",
       " '990507785',\n",
       " '1996518567',\n",
       " '2680339394',\n",
       " '3292004587',\n",
       " '469116393',\n",
       " '1995030251',\n",
       " '1101602207',\n",
       " '2209002289',\n",
       " '4109397627',\n",
       " '1251857185',\n",
       " '403920458',\n",
       " '3057886253',\n",
       " '2313021179',\n",
       " '2336501033',\n",
       " '15469418',\n",
       " '554693050',\n",
       " '2839339716',\n",
       " '985718337',\n",
       " '1168909050',\n",
       " '3065645152',\n",
       " '608372256',\n",
       " '2981133909',\n",
       " '1965944390',\n",
       " '2034510440',\n",
       " '3228579807',\n",
       " '1325976285',\n",
       " '2560062488',\n",
       " '4039039716',\n",
       " '33930603',\n",
       " '1676582816',\n",
       " '1739369956',\n",
       " '3878851138',\n",
       " '105347632',\n",
       " '1064453408',\n",
       " '975501999',\n",
       " '3527940337',\n",
       " '156603823',\n",
       " '3855705749',\n",
       " '2388007096',\n",
       " '2556133275',\n",
       " '1597392855',\n",
       " '2458429643',\n",
       " '612098420',\n",
       " '1094788037',\n",
       " '1500569811',\n",
       " '3186577794',\n",
       " '609504174',\n",
       " '140576550',\n",
       " '3617843828',\n",
       " '2878084097',\n",
       " '1482478167',\n",
       " '1665746866',\n",
       " '3082761932',\n",
       " '1201984883',\n",
       " '780238213',\n",
       " '4181452333',\n",
       " '2524220101',\n",
       " '869017322',\n",
       " '3692641931',\n",
       " '2301083010',\n",
       " '1151239535',\n",
       " '1227878272',\n",
       " '1221391751',\n",
       " '3924556291',\n",
       " '3316715342',\n",
       " '3856015515',\n",
       " '4057602883',\n",
       " '1793056891',\n",
       " '2010045207',\n",
       " '541187878',\n",
       " '891035674',\n",
       " '1476956307',\n",
       " '1220188351',\n",
       " '932480867',\n",
       " '649114603',\n",
       " '842198355',\n",
       " '1800952806',\n",
       " '3336162241',\n",
       " '351313256',\n",
       " '3466521212',\n",
       " '3467140948',\n",
       " '2945719859',\n",
       " '2261895798',\n",
       " '1607600653',\n",
       " '3503737307',\n",
       " '2222375586',\n",
       " '4042141985',\n",
       " '3642118045',\n",
       " '2679652649',\n",
       " '696967670',\n",
       " '2325340243',\n",
       " '786776836',\n",
       " '801374963',\n",
       " '2903534974',\n",
       " '2978622176',\n",
       " '4168402703',\n",
       " '2191468400',\n",
       " '1561371437',\n",
       " '3682151225',\n",
       " '3083116980',\n",
       " '1221420614',\n",
       " '1669357187',\n",
       " '3415673411',\n",
       " '1949308966',\n",
       " '2469046391',\n",
       " '3085653149',\n",
       " '4108811510',\n",
       " '883614923',\n",
       " '1109682681',\n",
       " '2552614841',\n",
       " '1235578437',\n",
       " '1312400822',\n",
       " '3257224121',\n",
       " '2440671055',\n",
       " '3061219196',\n",
       " '572449222',\n",
       " '3308369328',\n",
       " '901207935',\n",
       " '3251840412',\n",
       " '2940390801',\n",
       " '673356819',\n",
       " '1452836623',\n",
       " '634885878',\n",
       " '4122483286',\n",
       " '900897870',\n",
       " '651258472',\n",
       " '3482266552',\n",
       " '1540298318',\n",
       " '603202352',\n",
       " '811791433',\n",
       " '3282950773',\n",
       " '182290053',\n",
       " '564641393',\n",
       " '2895220130',\n",
       " '2244689014',\n",
       " '763615925',\n",
       " '2805512120',\n",
       " '3866177358',\n",
       " '3223915354',\n",
       " '227629516',\n",
       " '2340910122',\n",
       " '2411451936',\n",
       " '2098666939',\n",
       " '1524520597',\n",
       " '4136999827',\n",
       " '1150855279',\n",
       " '3627571763',\n",
       " '929368698',\n",
       " '2330978075',\n",
       " '1386311924',\n",
       " '535350558',\n",
       " '3336438888',\n",
       " '547476091',\n",
       " '840892479',\n",
       " '2056616898',\n",
       " '2369345147',\n",
       " '607394331',\n",
       " '2264585544',\n",
       " '1228133573',\n",
       " '867285031',\n",
       " '35629376',\n",
       " '1759431765',\n",
       " '1329344819',\n",
       " '1571871667',\n",
       " '2193664477',\n",
       " '221442949',\n",
       " '925172794',\n",
       " '2171206786',\n",
       " '1017536864',\n",
       " '2295726157',\n",
       " '2001549733',\n",
       " '1160148526',\n",
       " '1278116367',\n",
       " '1663149119',\n",
       " '4087630383',\n",
       " '2242443745',\n",
       " '460608021',\n",
       " '1230559341',\n",
       " '2593484880',\n",
       " '1489351479',\n",
       " '61814256',\n",
       " '443931185',\n",
       " '458389001',\n",
       " '4008611364',\n",
       " '1848901690',\n",
       " '528810329',\n",
       " '29002074',\n",
       " '3556989632',\n",
       " '609630180',\n",
       " '2490559498',\n",
       " '3946163681',\n",
       " '3958701071',\n",
       " '3730114567',\n",
       " '1067164735',\n",
       " '996222490',\n",
       " '836256116',\n",
       " '2694023881',\n",
       " '2491647582',\n",
       " '1336715369',\n",
       " '2546983756',\n",
       " '3279257076',\n",
       " '3285425249',\n",
       " '327414596',\n",
       " '2164973127',\n",
       " '3311830643',\n",
       " '3622026274',\n",
       " '216475936',\n",
       " '588243849',\n",
       " '3297493554',\n",
       " '26389537',\n",
       " '516110926',\n",
       " '1476755701',\n",
       " '267902048',\n",
       " '2071842684',\n",
       " '183275855',\n",
       " '338395830',\n",
       " '2194245277',\n",
       " '2458068456',\n",
       " '3415507920',\n",
       " '4101519751',\n",
       " '3915913946',\n",
       " '2328965162',\n",
       " '1060988803',\n",
       " '1330656870',\n",
       " '1955766052',\n",
       " '528289771',\n",
       " '75436593',\n",
       " '2930631258',\n",
       " '3236041774',\n",
       " '1839455971',\n",
       " '1725995841',\n",
       " '1761058217',\n",
       " '3338812734',\n",
       " '122743553',\n",
       " '3282509573',\n",
       " '3410667855',\n",
       " '1548590231',\n",
       " '1953776591',\n",
       " '3434508639',\n",
       " '1666288434',\n",
       " '1855764195',\n",
       " '1515828822',\n",
       " '2356937947',\n",
       " '978642210',\n",
       " '2835299246',\n",
       " '1882928667',\n",
       " '882525479',\n",
       " '454881517',\n",
       " '2389097651',\n",
       " '1879127286',\n",
       " '648889363',\n",
       " '80379054',\n",
       " '3330927216',\n",
       " '1952889698',\n",
       " '3474900298',\n",
       " '3279061945',\n",
       " '2111847795',\n",
       " '2975026524',\n",
       " '684722612',\n",
       " '1827991074',\n",
       " '2788859591',\n",
       " '1013594520',\n",
       " '1022813953',\n",
       " '1952195470',\n",
       " '1267593079',\n",
       " '3475966810',\n",
       " '1000066358',\n",
       " '1387635875',\n",
       " '43965236',\n",
       " '1270740692',\n",
       " '1313619105',\n",
       " '282865908',\n",
       " '65116502',\n",
       " '3900238416',\n",
       " '1560565543',\n",
       " '2796038131',\n",
       " '1299218981',\n",
       " '1174924783',\n",
       " '4005604348',\n",
       " '1019226310',\n",
       " '1627419158',\n",
       " '1507405031',\n",
       " '23170479',\n",
       " '256692717',\n",
       " '3350047181',\n",
       " '2956786715',\n",
       " '4066539799',\n",
       " '199379035',\n",
       " '3122564522',\n",
       " '3608734461',\n",
       " '156079457',\n",
       " '3677612174',\n",
       " '1821206755',\n",
       " '3298977709',\n",
       " '167608261',\n",
       " '3357589225',\n",
       " '1330552944',\n",
       " '4151484001',\n",
       " '184140061',\n",
       " '2813858112',\n",
       " '3052191172',\n",
       " '4026656138',\n",
       " '111840914',\n",
       " '3095718598',\n",
       " '1567499133',\n",
       " '3709066919',\n",
       " '869928463',\n",
       " '1085490219',\n",
       " '4002956902',\n",
       " '2377207090',\n",
       " '1999564447',\n",
       " '2322320168',\n",
       " '776025327',\n",
       " '507847098',\n",
       " '1756431678',\n",
       " '3279316025',\n",
       " '3526927399',\n",
       " '254306319',\n",
       " '439366650',\n",
       " '2441936878',\n",
       " '2630103442',\n",
       " '3964856605',\n",
       " '395305791',\n",
       " '2540807169',\n",
       " '593799836',\n",
       " '3749087176',\n",
       " '2129920319',\n",
       " '802688704',\n",
       " '1131940169',\n",
       " '1954960931',\n",
       " '221717938',\n",
       " '1474879368',\n",
       " '715159059',\n",
       " '3212760933',\n",
       " '3151067532',\n",
       " '2199467633',\n",
       " '3270633490',\n",
       " '2813753172',\n",
       " '1539256277',\n",
       " '3848620961',\n",
       " '1038182690',\n",
       " '4286635694',\n",
       " '2791418962',\n",
       " '3188730216',\n",
       " '3618985332',\n",
       " '1134784132',\n",
       " '722675569',\n",
       " '2838808644',\n",
       " '2156920475',\n",
       " '3325600533',\n",
       " '3626957091',\n",
       " '4100120866',\n",
       " '2163512224',\n",
       " '592689052',\n",
       " '3098511794',\n",
       " '4054029300',\n",
       " '4217222631',\n",
       " '723110955',\n",
       " '893322374',\n",
       " '1912059312',\n",
       " '3746792233',\n",
       " '3910177999',\n",
       " '3769475875',\n",
       " '128723876',\n",
       " '1640786388',\n",
       " '3344502842',\n",
       " '328922601',\n",
       " '880096064',\n",
       " '1897267951',\n",
       " '3640843993',\n",
       " '1328697582',\n",
       " '341641838',\n",
       " '3594879390',\n",
       " '4092048823',\n",
       " '2147677924',\n",
       " '1069507870',\n",
       " '3226236386',\n",
       " '3257773536',\n",
       " '4238211626',\n",
       " '20041353',\n",
       " '3970477206',\n",
       " '2040340167',\n",
       " '995064362',\n",
       " '3316008620',\n",
       " '77627621',\n",
       " '1747471686',\n",
       " '1568770334',\n",
       " '3245671824',\n",
       " '3581835660',\n",
       " '2571348801',\n",
       " '4125614780',\n",
       " '430443066',\n",
       " '1268093476',\n",
       " '830686203',\n",
       " '2239318984',\n",
       " '3199368063',\n",
       " '713889887',\n",
       " '2413535648',\n",
       " '2762021126',\n",
       " '3393388475',\n",
       " '4101515763',\n",
       " '656664529',\n",
       " '1349230619',\n",
       " '2512094999',\n",
       " '2869450440',\n",
       " '2767944555',\n",
       " '3390146258',\n",
       " '1803816912',\n",
       " '971079958',\n",
       " '1696361679',\n",
       " '2348719537',\n",
       " '4046490355',\n",
       " '1611204256',\n",
       " '1047741032',\n",
       " '743008535',\n",
       " '3064452030',\n",
       " '1622366272',\n",
       " '5161061',\n",
       " '65801702',\n",
       " '429489211',\n",
       " '1447459888',\n",
       " '2714575829',\n",
       " '569826712',\n",
       " '3292395061',\n",
       " '2958453070',\n",
       " '2991097972',\n",
       " '2295604395',\n",
       " '4278102337',\n",
       " '4269957924',\n",
       " '2444212053',\n",
       " '1484078818',\n",
       " '3141270743',\n",
       " '2684781446',\n",
       " '4189881681',\n",
       " '2501280523',\n",
       " '1008893291',\n",
       " '2074086523',\n",
       " '2473747678',\n",
       " '1455874424',\n",
       " '3764872798',\n",
       " '98054194',\n",
       " '2712018445',\n",
       " '3560210941',\n",
       " '3858694816',\n",
       " '3911822363',\n",
       " '4159195102',\n",
       " '719203242',\n",
       " '2194944131',\n",
       " '3563882371',\n",
       " '466698547',\n",
       " '1485684679',\n",
       " '265682801',\n",
       " '2928822295',\n",
       " '1287850161',\n",
       " '2804635189',\n",
       " '1967689783',\n",
       " '1214698655',\n",
       " '3221545220',\n",
       " '2258212445',\n",
       " '4018723397',\n",
       " '1392332761',\n",
       " '516353916',\n",
       " '4214369322',\n",
       " '2488018670',\n",
       " '2669808667',\n",
       " '1437617088',\n",
       " '1030564391',\n",
       " '3811993332',\n",
       " '381155306',\n",
       " '3165928866',\n",
       " '577206982',\n",
       " '681010476',\n",
       " '2849010050',\n",
       " '709445936',\n",
       " '3864685851',\n",
       " '1895700651',\n",
       " '2560745948',\n",
       " '489332113',\n",
       " '2380308964',\n",
       " '3865016311',\n",
       " '4185425091',\n",
       " '3475233110',\n",
       " '793842953',\n",
       " '1555879260',\n",
       " '1919684252',\n",
       " '3242215738',\n",
       " '3724535659',\n",
       " '875823959',\n",
       " '3360609244',\n",
       " '1177603447',\n",
       " '3803199563',\n",
       " '3330527170',\n",
       " '934944362',\n",
       " '2844491503',\n",
       " '2937936158',\n",
       " '183980147',\n",
       " '1949443459',\n",
       " '419778061',\n",
       " '677234912',\n",
       " '1930913390',\n",
       " '2728047278',\n",
       " '1287353407',\n",
       " '589868615',\n",
       " '1435067643',\n",
       " '3876455884',\n",
       " '3129779187',\n",
       " '2312878118',\n",
       " '82610705',\n",
       " '3793812304',\n",
       " '3637069534',\n",
       " '3183278547',\n",
       " '2623537385',\n",
       " '292529766',\n",
       " '3669515588',\n",
       " '3492585943',\n",
       " '1644052705',\n",
       " '1338460474',\n",
       " '2609208135',\n",
       " '28806872',\n",
       " '4024104633',\n",
       " '2271075773',\n",
       " '71092144',\n",
       " '1996678705',\n",
       " '2495407859',\n",
       " '2944246732',\n",
       " '3460014666',\n",
       " '2195608251',\n",
       " '567820539',\n",
       " '1980915793',\n",
       " '1341260655',\n",
       " '1729709850',\n",
       " '3353825628',\n",
       " '3222079869',\n",
       " '1726345056',\n",
       " '3537668660',\n",
       " '1865714809',\n",
       " '1612463745',\n",
       " '1322959747',\n",
       " '1354120181',\n",
       " '2202079852',\n",
       " '638210143',\n",
       " '2342735753',\n",
       " '4152805025',\n",
       " '2815688436',\n",
       " '988213942',\n",
       " '3613178093',\n",
       " '107783241',\n",
       " '998215810',\n",
       " '2477144867',\n",
       " '1946827878',\n",
       " '1079339663',\n",
       " '2071663365',\n",
       " '1444113850',\n",
       " '3408163802',\n",
       " '178408585',\n",
       " '3883721026',\n",
       " '778295633',\n",
       " '1781227779',\n",
       " '2943972367',\n",
       " '491792092',\n",
       " '1208562840',\n",
       " '3659421361',\n",
       " '1792619547',\n",
       " '3622262372',\n",
       " '4220962429',\n",
       " '1774252774',\n",
       " '1882344631',\n",
       " '4066782471',\n",
       " ...}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "uniqueUsers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#用户关系矩阵表，可用于后续LFM/SVD++处理的输入\n",
    "#这是一个稀疏矩阵，记录用户对活动感兴趣\n",
    "userEventScores = ss.dok_matrix((n_uniqueUsers, n_uniqueEvents))\n",
    "userIndex = dict()\n",
    "eventIndex = dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<3391x13418 sparse matrix of type '<class 'numpy.float64'>'\n",
       "\twith 0 stored elements in Dictionary Of Keys format>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "userEventScores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#重新编码用户索引字典\n",
    "for i, u in enumerate(uniqueUsers):\n",
    "    userIndex[u] = i\n",
    "    \n",
    "#重新编码活动索引字典    \n",
    "for i, e in enumerate(uniqueEvents):\n",
    "    eventIndex[e] = i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'689961313': 0,\n",
       " '2949537983': 1,\n",
       " '569536605': 2,\n",
       " '2162037984': 3,\n",
       " '1323529412': 4,\n",
       " '999268198': 5,\n",
       " '373631588': 6,\n",
       " '1941314046': 7,\n",
       " '4005906279': 8,\n",
       " '3041705231': 9,\n",
       " '4276320842': 10,\n",
       " '730373215': 11,\n",
       " '4125376571': 12,\n",
       " '3166414361': 13,\n",
       " '1747042580': 14,\n",
       " '2193628344': 15,\n",
       " '1001062210': 16,\n",
       " '2346084629': 17,\n",
       " '2712755708': 18,\n",
       " '2425859426': 19,\n",
       " '1427626481': 20,\n",
       " '2086869786': 21,\n",
       " '1641960627': 22,\n",
       " '4026562594': 23,\n",
       " '3734822391': 24,\n",
       " '2563679078': 25,\n",
       " '770336801': 26,\n",
       " '3208908819': 27,\n",
       " '1580848851': 28,\n",
       " '1016099896': 29,\n",
       " '3849582471': 30,\n",
       " '2489551967': 31,\n",
       " '168520465': 32,\n",
       " '3261632504': 33,\n",
       " '2681199273': 34,\n",
       " '2798769441': 35,\n",
       " '2910006718': 36,\n",
       " '2056169186': 37,\n",
       " '3199843944': 38,\n",
       " '2157224192': 39,\n",
       " '3186268838': 40,\n",
       " '934187073': 41,\n",
       " '2023721073': 42,\n",
       " '2272113940': 43,\n",
       " '3389539441': 44,\n",
       " '870307659': 45,\n",
       " '4107349498': 46,\n",
       " '4207448575': 47,\n",
       " '41934198': 48,\n",
       " '3269471699': 49,\n",
       " '942095316': 50,\n",
       " '609331956': 51,\n",
       " '3410532659': 52,\n",
       " '265212492': 53,\n",
       " '293887296': 54,\n",
       " '3076344276': 55,\n",
       " '377835263': 56,\n",
       " '3384327553': 57,\n",
       " '2825444746': 58,\n",
       " '3000809568': 59,\n",
       " '809834239': 60,\n",
       " '1449039754': 61,\n",
       " '2185852179': 62,\n",
       " '4111854243': 63,\n",
       " '355445705': 64,\n",
       " '2985391759': 65,\n",
       " '2638473114': 66,\n",
       " '3110482182': 67,\n",
       " '3913824397': 68,\n",
       " '1053832375': 69,\n",
       " '3990579831': 70,\n",
       " '1853545080': 71,\n",
       " '603763318': 72,\n",
       " '1130967213': 73,\n",
       " '3601181201': 74,\n",
       " '3851487388': 75,\n",
       " '3481169628': 76,\n",
       " '2920617215': 77,\n",
       " '3299562450': 78,\n",
       " '210626346': 79,\n",
       " '620032149': 80,\n",
       " '1788141082': 81,\n",
       " '2169945834': 82,\n",
       " '3462246595': 83,\n",
       " '3983124874': 84,\n",
       " '3554343310': 85,\n",
       " '1144485498': 86,\n",
       " '2722906127': 87,\n",
       " '3968108639': 88,\n",
       " '2034536037': 89,\n",
       " '3427263623': 90,\n",
       " '1536104641': 91,\n",
       " '3102820911': 92,\n",
       " '2222162186': 93,\n",
       " '253594379': 94,\n",
       " '2659357596': 95,\n",
       " '3148555709': 96,\n",
       " '3723896394': 97,\n",
       " '2421584601': 98,\n",
       " '2490592488': 99,\n",
       " '2515029406': 100,\n",
       " '4099439378': 101,\n",
       " '2123040565': 102,\n",
       " '1860318569': 103,\n",
       " '4088211339': 104,\n",
       " '2166518457': 105,\n",
       " '2300457037': 106,\n",
       " '4156591803': 107,\n",
       " '1732859563': 108,\n",
       " '400738124': 109,\n",
       " '3348106292': 110,\n",
       " '1724694030': 111,\n",
       " '2926898853': 112,\n",
       " '3493543279': 113,\n",
       " '1914182220': 114,\n",
       " '4085088124': 115,\n",
       " '3937992703': 116,\n",
       " '296271448': 117,\n",
       " '1832146052': 118,\n",
       " '2711152367': 119,\n",
       " '1747091728': 120,\n",
       " '3156258711': 121,\n",
       " '2842187594': 122,\n",
       " '3904408941': 123,\n",
       " '3261647162': 124,\n",
       " '307071731': 125,\n",
       " '1336664122': 126,\n",
       " '776020237': 127,\n",
       " '743802819': 128,\n",
       " '1038432983': 129,\n",
       " '3395257600': 130,\n",
       " '4141924620': 131,\n",
       " '4122118697': 132,\n",
       " '3839562998': 133,\n",
       " '2927772127': 134,\n",
       " '249918369': 135,\n",
       " '2440023887': 136,\n",
       " '141849067': 137,\n",
       " '3491804473': 138,\n",
       " '1296420014': 139,\n",
       " '3180412264': 140,\n",
       " '3220398573': 141,\n",
       " '555631167': 142,\n",
       " '3464554032': 143,\n",
       " '1115244043': 144,\n",
       " '3598881287': 145,\n",
       " '458097400': 146,\n",
       " '1602963012': 147,\n",
       " '3047819005': 148,\n",
       " '193113796': 149,\n",
       " '2129690960': 150,\n",
       " '4135589149': 151,\n",
       " '1548827068': 152,\n",
       " '1025593498': 153,\n",
       " '3042642967': 154,\n",
       " '2577093097': 155,\n",
       " '1049843964': 156,\n",
       " '1969578305': 157,\n",
       " '3751606951': 158,\n",
       " '2251800772': 159,\n",
       " '2864899561': 160,\n",
       " '1887766017': 161,\n",
       " '3971863644': 162,\n",
       " '3536031836': 163,\n",
       " '2328301807': 164,\n",
       " '2990855864': 165,\n",
       " '1954193338': 166,\n",
       " '1953311106': 167,\n",
       " '1346837558': 168,\n",
       " '642317092': 169,\n",
       " '4081761804': 170,\n",
       " '1415268912': 171,\n",
       " '4075466480': 172,\n",
       " '1781308359': 173,\n",
       " '3603006634': 174,\n",
       " '1718898264': 175,\n",
       " '3089564924': 176,\n",
       " '1757951758': 177,\n",
       " '3221698850': 178,\n",
       " '2212919969': 179,\n",
       " '2391596358': 180,\n",
       " '316066613': 181,\n",
       " '683588589': 182,\n",
       " '3550832930': 183,\n",
       " '1578153876': 184,\n",
       " '1805653308': 185,\n",
       " '38985694': 186,\n",
       " '1623287180': 187,\n",
       " '3220841218': 188,\n",
       " '659447721': 189,\n",
       " '3918374668': 190,\n",
       " '237595480': 191,\n",
       " '2959872768': 192,\n",
       " '4009496977': 193,\n",
       " '1626755496': 194,\n",
       " '1369905557': 195,\n",
       " '986039272': 196,\n",
       " '2614389627': 197,\n",
       " '1615336827': 198,\n",
       " '2584536356': 199,\n",
       " '1579613783': 200,\n",
       " '2282422131': 201,\n",
       " '2927241033': 202,\n",
       " '1266271629': 203,\n",
       " '3519404949': 204,\n",
       " '3221482892': 205,\n",
       " '2566144998': 206,\n",
       " '3647725503': 207,\n",
       " '158531231': 208,\n",
       " '2128672319': 209,\n",
       " '3239836164': 210,\n",
       " '1101972092': 211,\n",
       " '2875543516': 212,\n",
       " '3441266811': 213,\n",
       " '2332715028': 214,\n",
       " '691612308': 215,\n",
       " '4226575687': 216,\n",
       " '870439648': 217,\n",
       " '2233880590': 218,\n",
       " '1544537243': 219,\n",
       " '659725808': 220,\n",
       " '3408810544': 221,\n",
       " '294167146': 222,\n",
       " '699420462': 223,\n",
       " '3312901615': 224,\n",
       " '2500150280': 225,\n",
       " '384269001': 226,\n",
       " '178517662': 227,\n",
       " '358368837': 228,\n",
       " '583119832': 229,\n",
       " '403467810': 230,\n",
       " '1513532936': 231,\n",
       " '3890676452': 232,\n",
       " '1879459765': 233,\n",
       " '1066251866': 234,\n",
       " '3252326922': 235,\n",
       " '2217567238': 236,\n",
       " '662608699': 237,\n",
       " '4165482530': 238,\n",
       " '279699155': 239,\n",
       " '611059554': 240,\n",
       " '2858284447': 241,\n",
       " '3963277827': 242,\n",
       " '1628172447': 243,\n",
       " '143093592': 244,\n",
       " '2282257791': 245,\n",
       " '2925400415': 246,\n",
       " '3031311007': 247,\n",
       " '4051263407': 248,\n",
       " '3766417922': 249,\n",
       " '4195841083': 250,\n",
       " '2204029945': 251,\n",
       " '181961047': 252,\n",
       " '3504006486': 253,\n",
       " '1148091006': 254,\n",
       " '272165392': 255,\n",
       " '2202271093': 256,\n",
       " '1093568005': 257,\n",
       " '721089780': 258,\n",
       " '3255013048': 259,\n",
       " '1809934947': 260,\n",
       " '3444786385': 261,\n",
       " '122826603': 262,\n",
       " '3892760681': 263,\n",
       " '3601021922': 264,\n",
       " '540360566': 265,\n",
       " '552316934': 266,\n",
       " '2501052021': 267,\n",
       " '3376295099': 268,\n",
       " '1109967945': 269,\n",
       " '2764881224': 270,\n",
       " '400629571': 271,\n",
       " '2858760089': 272,\n",
       " '4116824604': 273,\n",
       " '3981819420': 274,\n",
       " '3348417635': 275,\n",
       " '964184183': 276,\n",
       " '3145229913': 277,\n",
       " '2932100756': 278,\n",
       " '2504328739': 279,\n",
       " '4195660981': 280,\n",
       " '3641159022': 281,\n",
       " '4197193550': 282,\n",
       " '944898886': 283,\n",
       " '2916716118': 284,\n",
       " '3275450415': 285,\n",
       " '3261535803': 286,\n",
       " '2054531858': 287,\n",
       " '2021435753': 288,\n",
       " '2278013791': 289,\n",
       " '16454810': 290,\n",
       " '2827067982': 291,\n",
       " '351713549': 292,\n",
       " '2723711433': 293,\n",
       " '3240223983': 294,\n",
       " '1018886228': 295,\n",
       " '2587246668': 296,\n",
       " '2138239477': 297,\n",
       " '1290399197': 298,\n",
       " '2980760895': 299,\n",
       " '576776993': 300,\n",
       " '4157365314': 301,\n",
       " '1859538565': 302,\n",
       " '2507955484': 303,\n",
       " '97062150': 304,\n",
       " '2817061625': 305,\n",
       " '2326463380': 306,\n",
       " '2491957982': 307,\n",
       " '1071319145': 308,\n",
       " '3317343091': 309,\n",
       " '1486465606': 310,\n",
       " '4164388326': 311,\n",
       " '2505058685': 312,\n",
       " '137002204': 313,\n",
       " '1317057097': 314,\n",
       " '427369081': 315,\n",
       " '2513652558': 316,\n",
       " '1213367737': 317,\n",
       " '1319081165': 318,\n",
       " '3861589862': 319,\n",
       " '2863143805': 320,\n",
       " '3188659428': 321,\n",
       " '630652349': 322,\n",
       " '1583577411': 323,\n",
       " '620761021': 324,\n",
       " '3205053921': 325,\n",
       " '1701323236': 326,\n",
       " '2022846287': 327,\n",
       " '491496715': 328,\n",
       " '3120509854': 329,\n",
       " '3988097489': 330,\n",
       " '3445686240': 331,\n",
       " '2242768450': 332,\n",
       " '3198823658': 333,\n",
       " '504326263': 334,\n",
       " '3061307316': 335,\n",
       " '2464597212': 336,\n",
       " '1112899728': 337,\n",
       " '1233124121': 338,\n",
       " '4067602271': 339,\n",
       " '1186383301': 340,\n",
       " '2493566825': 341,\n",
       " '814715283': 342,\n",
       " '851286067': 343,\n",
       " '2724319931': 344,\n",
       " '3779883288': 345,\n",
       " '613747359': 346,\n",
       " '1392003365': 347,\n",
       " '203456139': 348,\n",
       " '351801772': 349,\n",
       " '2127416756': 350,\n",
       " '2256989025': 351,\n",
       " '1945364081': 352,\n",
       " '50457238': 353,\n",
       " '2318415276': 354,\n",
       " '1384880491': 355,\n",
       " '45139176': 356,\n",
       " '1421630185': 357,\n",
       " '3811264923': 358,\n",
       " '197344023': 359,\n",
       " '4202112938': 360,\n",
       " '233871977': 361,\n",
       " '3939277895': 362,\n",
       " '2864836500': 363,\n",
       " '654235318': 364,\n",
       " '2491651409': 365,\n",
       " '3044183470': 366,\n",
       " '3964170614': 367,\n",
       " '3349277777': 368,\n",
       " '1258740073': 369,\n",
       " '3102057813': 370,\n",
       " '3969445925': 371,\n",
       " '1710009181': 372,\n",
       " '1060747655': 373,\n",
       " '3104132371': 374,\n",
       " '1474775097': 375,\n",
       " '3477857993': 376,\n",
       " '3147653776': 377,\n",
       " '70585535': 378,\n",
       " '2932861723': 379,\n",
       " '211046503': 380,\n",
       " '3598550965': 381,\n",
       " '1374205441': 382,\n",
       " '1082691947': 383,\n",
       " '3647778578': 384,\n",
       " '2610677742': 385,\n",
       " '928375715': 386,\n",
       " '2301837429': 387,\n",
       " '2041677127': 388,\n",
       " '3787931088': 389,\n",
       " '2467980416': 390,\n",
       " '2086141202': 391,\n",
       " '915901561': 392,\n",
       " '2703461171': 393,\n",
       " '2288466976': 394,\n",
       " '3815063730': 395,\n",
       " '550625442': 396,\n",
       " '1748492203': 397,\n",
       " '604530209': 398,\n",
       " '2495110802': 399,\n",
       " '3810743959': 400,\n",
       " '457456094': 401,\n",
       " '2691223445': 402,\n",
       " '2860912043': 403,\n",
       " '2635167233': 404,\n",
       " '2971846635': 405,\n",
       " '1538685648': 406,\n",
       " '2057654985': 407,\n",
       " '4012638060': 408,\n",
       " '3156650528': 409,\n",
       " '4001997352': 410,\n",
       " '3062811490': 411,\n",
       " '3371598262': 412,\n",
       " '393035612': 413,\n",
       " '1210853041': 414,\n",
       " '1422103142': 415,\n",
       " '2694809416': 416,\n",
       " '4048868881': 417,\n",
       " '1044598291': 418,\n",
       " '4036343234': 419,\n",
       " '3926920467': 420,\n",
       " '3065586006': 421,\n",
       " '2702656559': 422,\n",
       " '2872854546': 423,\n",
       " '2286292570': 424,\n",
       " '2873615520': 425,\n",
       " '594741805': 426,\n",
       " '965181412': 427,\n",
       " '4291083982': 428,\n",
       " '2520120463': 429,\n",
       " '4264591455': 430,\n",
       " '734292380': 431,\n",
       " '990507785': 432,\n",
       " '1996518567': 433,\n",
       " '2680339394': 434,\n",
       " '3292004587': 435,\n",
       " '469116393': 436,\n",
       " '1995030251': 437,\n",
       " '1101602207': 438,\n",
       " '2209002289': 439,\n",
       " '4109397627': 440,\n",
       " '1251857185': 441,\n",
       " '403920458': 442,\n",
       " '3057886253': 443,\n",
       " '2313021179': 444,\n",
       " '2336501033': 445,\n",
       " '15469418': 446,\n",
       " '554693050': 447,\n",
       " '2839339716': 448,\n",
       " '985718337': 449,\n",
       " '1168909050': 450,\n",
       " '3065645152': 451,\n",
       " '608372256': 452,\n",
       " '2981133909': 453,\n",
       " '1965944390': 454,\n",
       " '2034510440': 455,\n",
       " '3228579807': 456,\n",
       " '1325976285': 457,\n",
       " '2560062488': 458,\n",
       " '4039039716': 459,\n",
       " '33930603': 460,\n",
       " '1676582816': 461,\n",
       " '1739369956': 462,\n",
       " '3878851138': 463,\n",
       " '105347632': 464,\n",
       " '1064453408': 465,\n",
       " '975501999': 466,\n",
       " '3527940337': 467,\n",
       " '156603823': 468,\n",
       " '3855705749': 469,\n",
       " '2388007096': 470,\n",
       " '2556133275': 471,\n",
       " '1597392855': 472,\n",
       " '2458429643': 473,\n",
       " '612098420': 474,\n",
       " '1094788037': 475,\n",
       " '1500569811': 476,\n",
       " '3186577794': 477,\n",
       " '609504174': 478,\n",
       " '140576550': 479,\n",
       " '3617843828': 480,\n",
       " '2878084097': 481,\n",
       " '1482478167': 482,\n",
       " '1665746866': 483,\n",
       " '3082761932': 484,\n",
       " '1201984883': 485,\n",
       " '780238213': 486,\n",
       " '4181452333': 487,\n",
       " '2524220101': 488,\n",
       " '869017322': 489,\n",
       " '3692641931': 490,\n",
       " '2301083010': 491,\n",
       " '1151239535': 492,\n",
       " '1227878272': 493,\n",
       " '1221391751': 494,\n",
       " '3924556291': 495,\n",
       " '3316715342': 496,\n",
       " '3856015515': 497,\n",
       " '4057602883': 498,\n",
       " '1793056891': 499,\n",
       " '2010045207': 500,\n",
       " '541187878': 501,\n",
       " '891035674': 502,\n",
       " '1476956307': 503,\n",
       " '1220188351': 504,\n",
       " '932480867': 505,\n",
       " '649114603': 506,\n",
       " '842198355': 507,\n",
       " '1800952806': 508,\n",
       " '3336162241': 509,\n",
       " '351313256': 510,\n",
       " '3466521212': 511,\n",
       " '3467140948': 512,\n",
       " '2945719859': 513,\n",
       " '2261895798': 514,\n",
       " '1607600653': 515,\n",
       " '3503737307': 516,\n",
       " '2222375586': 517,\n",
       " '4042141985': 518,\n",
       " '3642118045': 519,\n",
       " '2679652649': 520,\n",
       " '696967670': 521,\n",
       " '2325340243': 522,\n",
       " '786776836': 523,\n",
       " '801374963': 524,\n",
       " '2903534974': 525,\n",
       " '2978622176': 526,\n",
       " '4168402703': 527,\n",
       " '2191468400': 528,\n",
       " '1561371437': 529,\n",
       " '3682151225': 530,\n",
       " '3083116980': 531,\n",
       " '1221420614': 532,\n",
       " '1669357187': 533,\n",
       " '3415673411': 534,\n",
       " '1949308966': 535,\n",
       " '2469046391': 536,\n",
       " '3085653149': 537,\n",
       " '4108811510': 538,\n",
       " '883614923': 539,\n",
       " '1109682681': 540,\n",
       " '2552614841': 541,\n",
       " '1235578437': 542,\n",
       " '1312400822': 543,\n",
       " '3257224121': 544,\n",
       " '2440671055': 545,\n",
       " '3061219196': 546,\n",
       " '572449222': 547,\n",
       " '3308369328': 548,\n",
       " '901207935': 549,\n",
       " '3251840412': 550,\n",
       " '2940390801': 551,\n",
       " '673356819': 552,\n",
       " '1452836623': 553,\n",
       " '634885878': 554,\n",
       " '4122483286': 555,\n",
       " '900897870': 556,\n",
       " '651258472': 557,\n",
       " '3482266552': 558,\n",
       " '1540298318': 559,\n",
       " '603202352': 560,\n",
       " '811791433': 561,\n",
       " '3282950773': 562,\n",
       " '182290053': 563,\n",
       " '564641393': 564,\n",
       " '2895220130': 565,\n",
       " '2244689014': 566,\n",
       " '763615925': 567,\n",
       " '2805512120': 568,\n",
       " '3866177358': 569,\n",
       " '3223915354': 570,\n",
       " '227629516': 571,\n",
       " '2340910122': 572,\n",
       " '2411451936': 573,\n",
       " '2098666939': 574,\n",
       " '1524520597': 575,\n",
       " '4136999827': 576,\n",
       " '1150855279': 577,\n",
       " '3627571763': 578,\n",
       " '929368698': 579,\n",
       " '2330978075': 580,\n",
       " '1386311924': 581,\n",
       " '535350558': 582,\n",
       " '3336438888': 583,\n",
       " '547476091': 584,\n",
       " '840892479': 585,\n",
       " '2056616898': 586,\n",
       " '2369345147': 587,\n",
       " '607394331': 588,\n",
       " '2264585544': 589,\n",
       " '1228133573': 590,\n",
       " '867285031': 591,\n",
       " '35629376': 592,\n",
       " '1759431765': 593,\n",
       " '1329344819': 594,\n",
       " '1571871667': 595,\n",
       " '2193664477': 596,\n",
       " '221442949': 597,\n",
       " '925172794': 598,\n",
       " '2171206786': 599,\n",
       " '1017536864': 600,\n",
       " '2295726157': 601,\n",
       " '2001549733': 602,\n",
       " '1160148526': 603,\n",
       " '1278116367': 604,\n",
       " '1663149119': 605,\n",
       " '4087630383': 606,\n",
       " '2242443745': 607,\n",
       " '460608021': 608,\n",
       " '1230559341': 609,\n",
       " '2593484880': 610,\n",
       " '1489351479': 611,\n",
       " '61814256': 612,\n",
       " '443931185': 613,\n",
       " '458389001': 614,\n",
       " '4008611364': 615,\n",
       " '1848901690': 616,\n",
       " '528810329': 617,\n",
       " '29002074': 618,\n",
       " '3556989632': 619,\n",
       " '609630180': 620,\n",
       " '2490559498': 621,\n",
       " '3946163681': 622,\n",
       " '3958701071': 623,\n",
       " '3730114567': 624,\n",
       " '1067164735': 625,\n",
       " '996222490': 626,\n",
       " '836256116': 627,\n",
       " '2694023881': 628,\n",
       " '2491647582': 629,\n",
       " '1336715369': 630,\n",
       " '2546983756': 631,\n",
       " '3279257076': 632,\n",
       " '3285425249': 633,\n",
       " '327414596': 634,\n",
       " '2164973127': 635,\n",
       " '3311830643': 636,\n",
       " '3622026274': 637,\n",
       " '216475936': 638,\n",
       " '588243849': 639,\n",
       " '3297493554': 640,\n",
       " '26389537': 641,\n",
       " '516110926': 642,\n",
       " '1476755701': 643,\n",
       " '267902048': 644,\n",
       " '2071842684': 645,\n",
       " '183275855': 646,\n",
       " '338395830': 647,\n",
       " '2194245277': 648,\n",
       " '2458068456': 649,\n",
       " '3415507920': 650,\n",
       " '4101519751': 651,\n",
       " '3915913946': 652,\n",
       " '2328965162': 653,\n",
       " '1060988803': 654,\n",
       " '1330656870': 655,\n",
       " '1955766052': 656,\n",
       " '528289771': 657,\n",
       " '75436593': 658,\n",
       " '2930631258': 659,\n",
       " '3236041774': 660,\n",
       " '1839455971': 661,\n",
       " '1725995841': 662,\n",
       " '1761058217': 663,\n",
       " '3338812734': 664,\n",
       " '122743553': 665,\n",
       " '3282509573': 666,\n",
       " '3410667855': 667,\n",
       " '1548590231': 668,\n",
       " '1953776591': 669,\n",
       " '3434508639': 670,\n",
       " '1666288434': 671,\n",
       " '1855764195': 672,\n",
       " '1515828822': 673,\n",
       " '2356937947': 674,\n",
       " '978642210': 675,\n",
       " '2835299246': 676,\n",
       " '1882928667': 677,\n",
       " '882525479': 678,\n",
       " '454881517': 679,\n",
       " '2389097651': 680,\n",
       " '1879127286': 681,\n",
       " '648889363': 682,\n",
       " '80379054': 683,\n",
       " '3330927216': 684,\n",
       " '1952889698': 685,\n",
       " '3474900298': 686,\n",
       " '3279061945': 687,\n",
       " '2111847795': 688,\n",
       " '2975026524': 689,\n",
       " '684722612': 690,\n",
       " '1827991074': 691,\n",
       " '2788859591': 692,\n",
       " '1013594520': 693,\n",
       " '1022813953': 694,\n",
       " '1952195470': 695,\n",
       " '1267593079': 696,\n",
       " '3475966810': 697,\n",
       " '1000066358': 698,\n",
       " '1387635875': 699,\n",
       " '43965236': 700,\n",
       " '1270740692': 701,\n",
       " '1313619105': 702,\n",
       " '282865908': 703,\n",
       " '65116502': 704,\n",
       " '3900238416': 705,\n",
       " '1560565543': 706,\n",
       " '2796038131': 707,\n",
       " '1299218981': 708,\n",
       " '1174924783': 709,\n",
       " '4005604348': 710,\n",
       " '1019226310': 711,\n",
       " '1627419158': 712,\n",
       " '1507405031': 713,\n",
       " '23170479': 714,\n",
       " '256692717': 715,\n",
       " '3350047181': 716,\n",
       " '2956786715': 717,\n",
       " '4066539799': 718,\n",
       " '199379035': 719,\n",
       " '3122564522': 720,\n",
       " '3608734461': 721,\n",
       " '156079457': 722,\n",
       " '3677612174': 723,\n",
       " '1821206755': 724,\n",
       " '3298977709': 725,\n",
       " '167608261': 726,\n",
       " '3357589225': 727,\n",
       " '1330552944': 728,\n",
       " '4151484001': 729,\n",
       " '184140061': 730,\n",
       " '2813858112': 731,\n",
       " '3052191172': 732,\n",
       " '4026656138': 733,\n",
       " '111840914': 734,\n",
       " '3095718598': 735,\n",
       " '1567499133': 736,\n",
       " '3709066919': 737,\n",
       " '869928463': 738,\n",
       " '1085490219': 739,\n",
       " '4002956902': 740,\n",
       " '2377207090': 741,\n",
       " '1999564447': 742,\n",
       " '2322320168': 743,\n",
       " '776025327': 744,\n",
       " '507847098': 745,\n",
       " '1756431678': 746,\n",
       " '3279316025': 747,\n",
       " '3526927399': 748,\n",
       " '254306319': 749,\n",
       " '439366650': 750,\n",
       " '2441936878': 751,\n",
       " '2630103442': 752,\n",
       " '3964856605': 753,\n",
       " '395305791': 754,\n",
       " '2540807169': 755,\n",
       " '593799836': 756,\n",
       " '3749087176': 757,\n",
       " '2129920319': 758,\n",
       " '802688704': 759,\n",
       " '1131940169': 760,\n",
       " '1954960931': 761,\n",
       " '221717938': 762,\n",
       " '1474879368': 763,\n",
       " '715159059': 764,\n",
       " '3212760933': 765,\n",
       " '3151067532': 766,\n",
       " '2199467633': 767,\n",
       " '3270633490': 768,\n",
       " '2813753172': 769,\n",
       " '1539256277': 770,\n",
       " '3848620961': 771,\n",
       " '1038182690': 772,\n",
       " '4286635694': 773,\n",
       " '2791418962': 774,\n",
       " '3188730216': 775,\n",
       " '3618985332': 776,\n",
       " '1134784132': 777,\n",
       " '722675569': 778,\n",
       " '2838808644': 779,\n",
       " '2156920475': 780,\n",
       " '3325600533': 781,\n",
       " '3626957091': 782,\n",
       " '4100120866': 783,\n",
       " '2163512224': 784,\n",
       " '592689052': 785,\n",
       " '3098511794': 786,\n",
       " '4054029300': 787,\n",
       " '4217222631': 788,\n",
       " '723110955': 789,\n",
       " '893322374': 790,\n",
       " '1912059312': 791,\n",
       " '3746792233': 792,\n",
       " '3910177999': 793,\n",
       " '3769475875': 794,\n",
       " '128723876': 795,\n",
       " '1640786388': 796,\n",
       " '3344502842': 797,\n",
       " '328922601': 798,\n",
       " '880096064': 799,\n",
       " '1897267951': 800,\n",
       " '3640843993': 801,\n",
       " '1328697582': 802,\n",
       " '341641838': 803,\n",
       " '3594879390': 804,\n",
       " '4092048823': 805,\n",
       " '2147677924': 806,\n",
       " '1069507870': 807,\n",
       " '3226236386': 808,\n",
       " '3257773536': 809,\n",
       " '4238211626': 810,\n",
       " '20041353': 811,\n",
       " '3970477206': 812,\n",
       " '2040340167': 813,\n",
       " '995064362': 814,\n",
       " '3316008620': 815,\n",
       " '77627621': 816,\n",
       " '1747471686': 817,\n",
       " '1568770334': 818,\n",
       " '3245671824': 819,\n",
       " '3581835660': 820,\n",
       " '2571348801': 821,\n",
       " '4125614780': 822,\n",
       " '430443066': 823,\n",
       " '1268093476': 824,\n",
       " '830686203': 825,\n",
       " '2239318984': 826,\n",
       " '3199368063': 827,\n",
       " '713889887': 828,\n",
       " '2413535648': 829,\n",
       " '2762021126': 830,\n",
       " '3393388475': 831,\n",
       " '4101515763': 832,\n",
       " '656664529': 833,\n",
       " '1349230619': 834,\n",
       " '2512094999': 835,\n",
       " '2869450440': 836,\n",
       " '2767944555': 837,\n",
       " '3390146258': 838,\n",
       " '1803816912': 839,\n",
       " '971079958': 840,\n",
       " '1696361679': 841,\n",
       " '2348719537': 842,\n",
       " '4046490355': 843,\n",
       " '1611204256': 844,\n",
       " '1047741032': 845,\n",
       " '743008535': 846,\n",
       " '3064452030': 847,\n",
       " '1622366272': 848,\n",
       " '5161061': 849,\n",
       " '65801702': 850,\n",
       " '429489211': 851,\n",
       " '1447459888': 852,\n",
       " '2714575829': 853,\n",
       " '569826712': 854,\n",
       " '3292395061': 855,\n",
       " '2958453070': 856,\n",
       " '2991097972': 857,\n",
       " '2295604395': 858,\n",
       " '4278102337': 859,\n",
       " '4269957924': 860,\n",
       " '2444212053': 861,\n",
       " '1484078818': 862,\n",
       " '3141270743': 863,\n",
       " '2684781446': 864,\n",
       " '4189881681': 865,\n",
       " '2501280523': 866,\n",
       " '1008893291': 867,\n",
       " '2074086523': 868,\n",
       " '2473747678': 869,\n",
       " '1455874424': 870,\n",
       " '3764872798': 871,\n",
       " '98054194': 872,\n",
       " '2712018445': 873,\n",
       " '3560210941': 874,\n",
       " '3858694816': 875,\n",
       " '3911822363': 876,\n",
       " '4159195102': 877,\n",
       " '719203242': 878,\n",
       " '2194944131': 879,\n",
       " '3563882371': 880,\n",
       " '466698547': 881,\n",
       " '1485684679': 882,\n",
       " '265682801': 883,\n",
       " '2928822295': 884,\n",
       " '1287850161': 885,\n",
       " '2804635189': 886,\n",
       " '1967689783': 887,\n",
       " '1214698655': 888,\n",
       " '3221545220': 889,\n",
       " '2258212445': 890,\n",
       " '4018723397': 891,\n",
       " '1392332761': 892,\n",
       " '516353916': 893,\n",
       " '4214369322': 894,\n",
       " '2488018670': 895,\n",
       " '2669808667': 896,\n",
       " '1437617088': 897,\n",
       " '1030564391': 898,\n",
       " '3811993332': 899,\n",
       " '381155306': 900,\n",
       " '3165928866': 901,\n",
       " '577206982': 902,\n",
       " '681010476': 903,\n",
       " '2849010050': 904,\n",
       " '709445936': 905,\n",
       " '3864685851': 906,\n",
       " '1895700651': 907,\n",
       " '2560745948': 908,\n",
       " '489332113': 909,\n",
       " '2380308964': 910,\n",
       " '3865016311': 911,\n",
       " '4185425091': 912,\n",
       " '3475233110': 913,\n",
       " '793842953': 914,\n",
       " '1555879260': 915,\n",
       " '1919684252': 916,\n",
       " '3242215738': 917,\n",
       " '3724535659': 918,\n",
       " '875823959': 919,\n",
       " '3360609244': 920,\n",
       " '1177603447': 921,\n",
       " '3803199563': 922,\n",
       " '3330527170': 923,\n",
       " '934944362': 924,\n",
       " '2844491503': 925,\n",
       " '2937936158': 926,\n",
       " '183980147': 927,\n",
       " '1949443459': 928,\n",
       " '419778061': 929,\n",
       " '677234912': 930,\n",
       " '1930913390': 931,\n",
       " '2728047278': 932,\n",
       " '1287353407': 933,\n",
       " '589868615': 934,\n",
       " '1435067643': 935,\n",
       " '3876455884': 936,\n",
       " '3129779187': 937,\n",
       " '2312878118': 938,\n",
       " '82610705': 939,\n",
       " '3793812304': 940,\n",
       " '3637069534': 941,\n",
       " '3183278547': 942,\n",
       " '2623537385': 943,\n",
       " '292529766': 944,\n",
       " '3669515588': 945,\n",
       " '3492585943': 946,\n",
       " '1644052705': 947,\n",
       " '1338460474': 948,\n",
       " '2609208135': 949,\n",
       " '28806872': 950,\n",
       " '4024104633': 951,\n",
       " '2271075773': 952,\n",
       " '71092144': 953,\n",
       " '1996678705': 954,\n",
       " '2495407859': 955,\n",
       " '2944246732': 956,\n",
       " '3460014666': 957,\n",
       " '2195608251': 958,\n",
       " '567820539': 959,\n",
       " '1980915793': 960,\n",
       " '1341260655': 961,\n",
       " '1729709850': 962,\n",
       " '3353825628': 963,\n",
       " '3222079869': 964,\n",
       " '1726345056': 965,\n",
       " '3537668660': 966,\n",
       " '1865714809': 967,\n",
       " '1612463745': 968,\n",
       " '1322959747': 969,\n",
       " '1354120181': 970,\n",
       " '2202079852': 971,\n",
       " '638210143': 972,\n",
       " '2342735753': 973,\n",
       " '4152805025': 974,\n",
       " '2815688436': 975,\n",
       " '988213942': 976,\n",
       " '3613178093': 977,\n",
       " '107783241': 978,\n",
       " '998215810': 979,\n",
       " '2477144867': 980,\n",
       " '1946827878': 981,\n",
       " '1079339663': 982,\n",
       " '2071663365': 983,\n",
       " '1444113850': 984,\n",
       " '3408163802': 985,\n",
       " '178408585': 986,\n",
       " '3883721026': 987,\n",
       " '778295633': 988,\n",
       " '1781227779': 989,\n",
       " '2943972367': 990,\n",
       " '491792092': 991,\n",
       " '1208562840': 992,\n",
       " '3659421361': 993,\n",
       " '1792619547': 994,\n",
       " '3622262372': 995,\n",
       " '4220962429': 996,\n",
       " '1774252774': 997,\n",
       " '1882344631': 998,\n",
       " '4066782471': 999,\n",
       " ...}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "userIndex"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "n_records = 0\n",
    "ftrain = open(\"./data/train.csv\", 'r')\n",
    "ftrain.readline()\n",
    "for line in ftrain:\n",
    "    cols = line.strip().split(\",\")\n",
    "    i = userIndex[cols[0]]  #用户\n",
    "    j = eventIndex[cols[1]] #活动\n",
    "    \n",
    "    eventsForUser[i].add(j)    #该用户参加了这个活动\n",
    "    usersForEvent[j].add(i)    #该活动被用户参加\n",
    "        \n",
    "    score = int(cols[4])\n",
    "    userEventScores[i, j] = score\n",
    "ftrain.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "defaultdict(set,\n",
       "            {1150: {1227, 3532, 7275, 7337, 10984, 12988},\n",
       "             1669: {1686, 2376, 8646, 10777, 12111, 12502, 12934},\n",
       "             1386: {1037, 2799, 5782, 7318, 11794, 12458},\n",
       "             2867: {359, 2236, 2972, 3647, 6111, 8538},\n",
       "             3300: {1550, 4925, 5708, 11101, 11384, 12835},\n",
       "             1098: {421,\n",
       "              1238,\n",
       "              1270,\n",
       "              2580,\n",
       "              3351,\n",
       "              6071,\n",
       "              6081,\n",
       "              7692,\n",
       "              8252,\n",
       "              9580,\n",
       "              10199,\n",
       "              11424,\n",
       "              11697,\n",
       "              12872},\n",
       "             1775: {500, 3976, 5343, 6110, 11332, 11352},\n",
       "             446: {2389, 3797, 7111, 8094, 11164, 11697},\n",
       "             2406: {1267, 5574, 8734, 10079, 11364, 13194, 13415},\n",
       "             2162: {2134, 3811, 7219, 8230, 9167, 11592},\n",
       "             811: {2262, 2377, 4751, 5606, 9289, 11367},\n",
       "             1755: {3296, 5279, 5851, 9639, 11688, 11980},\n",
       "             2208: {3781, 7265, 7891, 8545, 9352, 11534},\n",
       "             714: {1227,\n",
       "              2713,\n",
       "              2822,\n",
       "              2845,\n",
       "              3913,\n",
       "              4260,\n",
       "              4357,\n",
       "              7337,\n",
       "              7547,\n",
       "              8494,\n",
       "              8695,\n",
       "              9075,\n",
       "              9513,\n",
       "              9697,\n",
       "              9801,\n",
       "              10462,\n",
       "              11697,\n",
       "              12797,\n",
       "              12965,\n",
       "              12988,\n",
       "              13121},\n",
       "             2746: {3814, 4996, 6333, 8728, 10146, 12004},\n",
       "             641: {1227, 2262, 7337, 7387, 8404, 10462, 11697, 12988, 13121},\n",
       "             950: {1593, 4873, 6609, 6700, 6727},\n",
       "             618: {215, 927, 2944, 4137, 9324, 11684},\n",
       "             460: {4637, 6608, 8436, 10619, 12672},\n",
       "             3266: {3154, 5390, 6462, 7779, 8106, 10752},\n",
       "             592: {7340, 7714, 7920, 10278, 10692, 12482},\n",
       "             1346: {1227, 4260, 7337, 7661, 8695, 10462, 11697, 12988},\n",
       "             186: {447, 2973, 3236, 4119, 4522, 8802, 9967},\n",
       "             48: {2070, 3794, 4060, 9099, 10994, 11188},\n",
       "             2200: {5350, 7333, 9064, 10067, 10777, 12502},\n",
       "             356: {4296, 7263, 8099, 8670, 9644, 10692},\n",
       "             2852: {1276, 2526, 4255, 5127, 6820, 12890},\n",
       "             2883: {4295, 6221, 7281, 10893, 12262, 12720},\n",
       "             1829: {25, 716, 6170, 7343, 10451, 12691, 12892},\n",
       "             353: {3322, 5247, 6128, 6143, 7047, 10546, 13297},\n",
       "             3212: {3494, 5049, 6615, 8385, 10462, 11697, 12402, 12609},\n",
       "             2736: {4470, 5175, 6263, 6885, 9564, 10739, 13273},\n",
       "             612: {3172, 3795, 7263, 10215},\n",
       "             850: {1870,\n",
       "              2797,\n",
       "              2922,\n",
       "              5244,\n",
       "              5751,\n",
       "              7051,\n",
       "              8183,\n",
       "              8529,\n",
       "              9611,\n",
       "              10304},\n",
       "             2202: {430,\n",
       "              2046,\n",
       "              2869,\n",
       "              3611,\n",
       "              4703,\n",
       "              4803,\n",
       "              5473,\n",
       "              7151,\n",
       "              7974,\n",
       "              10221,\n",
       "              11892,\n",
       "              12736},\n",
       "             1515: {2097, 2841, 5350, 6440, 7338, 10777},\n",
       "             3369: {144, 652, 7042, 8517, 8697, 12348},\n",
       "             2028: {1227, 2570, 5172, 6921, 7337, 7387, 8926, 11697, 12988},\n",
       "             378: {5125, 8074, 9592, 10685, 11446, 12407},\n",
       "             3353: {1275, 2826, 3083, 3382, 4809, 4964, 5899, 8139, 11922},\n",
       "             1157: {1012, 5416, 6090, 6143, 6221, 10546, 12103},\n",
       "             2946: {1724, 2910, 3445, 5683, 12500, 13054},\n",
       "             2003: {1817, 5500, 8099, 9290, 9457, 10079, 11853},\n",
       "             683: {2168, 3118, 5529, 5809, 6087, 10780, 12247},\n",
       "             2906: {4127,\n",
       "              4720,\n",
       "              6253,\n",
       "              6612,\n",
       "              6830,\n",
       "              6950,\n",
       "              7264,\n",
       "              7276,\n",
       "              7946,\n",
       "              11390,\n",
       "              11664,\n",
       "              12436},\n",
       "             939: {2450,\n",
       "              2560,\n",
       "              3284,\n",
       "              4378,\n",
       "              4498,\n",
       "              6727,\n",
       "              6952,\n",
       "              7386,\n",
       "              7701,\n",
       "              7839,\n",
       "              8099,\n",
       "              8416,\n",
       "              11853},\n",
       "             3147: {357, 6297, 7845, 8247, 9644, 10587, 13292},\n",
       "             2169: {2465, 6353, 8064, 8191, 11097, 11326},\n",
       "             3081: {386, 3372, 4588, 7639, 8005, 9048},\n",
       "             1117: {348, 1227, 1238, 1344, 3065, 8252},\n",
       "             3354: {3253, 5615, 7475, 9725},\n",
       "             2859: {1227,\n",
       "              2026,\n",
       "              2302,\n",
       "              4704,\n",
       "              6120,\n",
       "              7075,\n",
       "              7337,\n",
       "              7387,\n",
       "              7784,\n",
       "              9599,\n",
       "              10462,\n",
       "              11697,\n",
       "              12391,\n",
       "              12853,\n",
       "              12902,\n",
       "              12988,\n",
       "              13121,\n",
       "              13368},\n",
       "             3059: {43,\n",
       "              296,\n",
       "              541,\n",
       "              758,\n",
       "              932,\n",
       "              1068,\n",
       "              2931,\n",
       "              3038,\n",
       "              4541,\n",
       "              4929,\n",
       "              5822,\n",
       "              5947,\n",
       "              6091,\n",
       "              6928,\n",
       "              8115,\n",
       "              8423,\n",
       "              8761,\n",
       "              9414,\n",
       "              9418,\n",
       "              9774,\n",
       "              9939,\n",
       "              10105,\n",
       "              10196,\n",
       "              10273,\n",
       "              10589,\n",
       "              11750,\n",
       "              12357,\n",
       "              12752,\n",
       "              13069},\n",
       "             2085: {1244, 4065, 6717, 7548, 10692, 11578},\n",
       "             2365: {1614, 2322, 7892, 9574, 10226, 11354},\n",
       "             872: {1175, 7332, 8099, 9644, 11364},\n",
       "             1473: {3208, 3909, 4878, 5980, 8368, 9361, 12760},\n",
       "             978: {605, 2804, 4538, 7581, 7861, 10198},\n",
       "             1118: {1928, 4593, 6537, 7121, 10391, 11053},\n",
       "             734: {1227, 7387, 9083, 9801, 10356, 10462, 11697, 12988},\n",
       "             1756: {1227,\n",
       "              3283,\n",
       "              5961,\n",
       "              6339,\n",
       "              7785,\n",
       "              9075,\n",
       "              10462,\n",
       "              10616,\n",
       "              11697,\n",
       "              11911},\n",
       "             2581: {945, 3284, 4703, 6110, 8896, 9041, 12324, 13199},\n",
       "             2316: {459, 1758, 2457, 4167, 8994, 10029, 11915},\n",
       "             262: {1989, 7394, 8099, 8541, 8670, 9164, 9336},\n",
       "             1985: {673, 2958, 4443, 9600, 10009, 10592, 12484},\n",
       "             1639: {202, 1227, 3494, 10181, 10462, 11697},\n",
       "             795: {265,\n",
       "              1884,\n",
       "              6845,\n",
       "              6994,\n",
       "              7713,\n",
       "              8035,\n",
       "              10108,\n",
       "              10474,\n",
       "              10873,\n",
       "              12402},\n",
       "             1034: {1012, 5416, 6221, 7730, 10546, 12571, 12686},\n",
       "             1080: {1915, 2097, 5350, 7333, 10777, 13094},\n",
       "             3256: {1539, 2714, 3914, 7011, 9937, 11869, 13381},\n",
       "             479: {697, 5358, 6628, 7872, 12603, 13351},\n",
       "             244: {3584, 4893, 9035, 11747},\n",
       "             1841: {54,\n",
       "              1574,\n",
       "              4016,\n",
       "              5282,\n",
       "              7052,\n",
       "              7503,\n",
       "              8255,\n",
       "              8655,\n",
       "              10382,\n",
       "              10711,\n",
       "              11244,\n",
       "              12543},\n",
       "             722: {712, 5062, 6710, 10079, 11405, 12200},\n",
       "             2935: {861, 3644, 6781, 7386, 8121, 8464},\n",
       "             468: {6128, 6143, 6800, 10546, 11652, 13291},\n",
       "             208: {1142, 1202, 1227, 5615, 6310, 10462, 11697},\n",
       "             1539: {2376, 2841, 6538, 7853, 10067, 10777},\n",
       "             2696: {2431, 2450, 2560, 3575, 7445, 8099, 9200, 10967},\n",
       "             3190: {1593, 3072, 5595, 6834, 9688},\n",
       "             1146: {2230, 3989, 4348, 5131, 7700, 11428},\n",
       "             1837: {1330,\n",
       "              1345,\n",
       "              5110,\n",
       "              5314,\n",
       "              5535,\n",
       "              5836,\n",
       "              7337,\n",
       "              7677,\n",
       "              8695,\n",
       "              12015,\n",
       "              12925,\n",
       "              12988},\n",
       "             2723: {2095, 4427, 7487, 8989, 9459, 12315},\n",
       "             227: {3945, 5049, 5329, 5645, 7672, 8164, 12725},\n",
       "             2138: {1142, 1162, 1570, 5957, 10064, 11720},\n",
       "             646: {1184, 4209, 5514, 6641, 8655, 11376},\n",
       "             730: {7180, 8304, 9821, 10299, 11593, 11786, 12403, 13379},\n",
       "             2303: {429,\n",
       "              2358,\n",
       "              3964,\n",
       "              4873,\n",
       "              5035,\n",
       "              6235,\n",
       "              6372,\n",
       "              8506,\n",
       "              8891,\n",
       "              9227,\n",
       "              9342,\n",
       "              10724,\n",
       "              12173},\n",
       "             3223: {20, 1227, 5852, 9368, 10462, 11697},\n",
       "             149: {1222, 2776, 4565, 6678, 7298, 13269},\n",
       "             1527: {2017, 6221, 6334, 10546, 11652, 12571, 13025},\n",
       "             1918: {4677, 6269, 7087, 8408, 9050},\n",
       "             1025: {448, 982, 8892, 10228, 10900, 13050},\n",
       "             2224: {828, 1082, 9373, 10691, 11312, 12275},\n",
       "             359: {2046, 2216, 2763, 6880, 10120, 10474, 11642, 11697},\n",
       "             1735: {4561, 4649, 6666, 8150, 8739, 12649},\n",
       "             1331: {2970, 7920, 9555, 9743, 10153, 10157, 12440},\n",
       "             719: {1227, 6369, 7072, 7337, 8695, 11697, 12988},\n",
       "             2473: {295,\n",
       "              796,\n",
       "              1202,\n",
       "              1227,\n",
       "              2570,\n",
       "              9075,\n",
       "              10491,\n",
       "              11697,\n",
       "              12286,\n",
       "              12584,\n",
       "              12599,\n",
       "              12645,\n",
       "              12729},\n",
       "             348: {2230, 3477, 4351, 5624, 9328, 11722, 11935},\n",
       "             2780: {2427, 4224, 4408, 6304, 9997, 10256},\n",
       "             2019: {1407, 4154, 5723, 8361, 10215, 10255, 10653},\n",
       "             2358: {3548, 3867, 7333, 8520, 10769, 10913, 11410, 11890},\n",
       "             79: {1755, 4386, 6441, 9836, 11515, 12167},\n",
       "             2260: {2551, 3289, 5018, 5113, 6945, 12287},\n",
       "             1957: {1086, 5783, 6825, 11535, 12218},\n",
       "             597: {1227,\n",
       "              1802,\n",
       "              2389,\n",
       "              7337,\n",
       "              8630,\n",
       "              8928,\n",
       "              9820,\n",
       "              10042,\n",
       "              10462,\n",
       "              10620,\n",
       "              11697,\n",
       "              12988,\n",
       "              13121},\n",
       "             1262: {5243, 5658, 6130, 8099, 9644, 10532},\n",
       "             2918: {328, 2783, 8039, 12814},\n",
       "             3240: {951, 7169, 7263, 7359, 7603, 8099},\n",
       "             2377: {5416, 6221, 10546, 11652, 12571, 13291},\n",
       "             2281: {1958, 2378, 6338, 7875, 10353, 11509, 12419, 13030},\n",
       "             3108: {348, 2312, 7679, 8670, 9051, 9779},\n",
       "             1209: {878, 1636, 5301, 9385, 12639},\n",
       "             1208: {216, 1686, 2376, 7853, 8024, 12414, 12502},\n",
       "             1484: {348, 1227, 1344, 8252, 9051, 11697},\n",
       "             1172: {3284, 3345, 7701, 9242, 11585, 12928},\n",
       "             1599: {2188, 2627, 3097, 3954, 4202, 4642, 9340, 11355},\n",
       "             1865: {6873, 8527, 9111, 9285, 9485, 12337},\n",
       "             2528: {6090, 6128, 6143, 8137, 10546, 11135},\n",
       "             1812: {994,\n",
       "              1351,\n",
       "              3234,\n",
       "              3302,\n",
       "              3566,\n",
       "              4080,\n",
       "              4245,\n",
       "              4358,\n",
       "              4711,\n",
       "              5969,\n",
       "              6070,\n",
       "              6212,\n",
       "              8244,\n",
       "              9585,\n",
       "              10300,\n",
       "              11484,\n",
       "              12384},\n",
       "             135: {2887, 3147, 8492, 10143, 10967},\n",
       "             2181: {421, 3762, 4729, 6110, 8896, 9048},\n",
       "             749: {3470, 4276, 4958, 6207, 10971, 11069},\n",
       "             1605: {2798, 3990, 4151, 5757, 7973, 10509},\n",
       "             715: {348, 3065, 7480, 8252, 9051, 9407, 11424},\n",
       "             2880: {1184,\n",
       "              3958,\n",
       "              4351,\n",
       "              4649,\n",
       "              6237,\n",
       "              6276,\n",
       "              7011,\n",
       "              7627,\n",
       "              9937,\n",
       "              10133,\n",
       "              11610,\n",
       "              12649,\n",
       "              12906},\n",
       "             1057: {1142, 2570, 6310, 8702, 13060, 13188},\n",
       "             1835: {657,\n",
       "              1683,\n",
       "              2100,\n",
       "              2823,\n",
       "              3780,\n",
       "              5380,\n",
       "              6154,\n",
       "              7633,\n",
       "              8791,\n",
       "              9581,\n",
       "              9607,\n",
       "              10850,\n",
       "              11897,\n",
       "              13073},\n",
       "             883: {1559,\n",
       "              1851,\n",
       "              2112,\n",
       "              2193,\n",
       "              3977,\n",
       "              6599,\n",
       "              7085,\n",
       "              7176,\n",
       "              10079,\n",
       "              10658,\n",
       "              11010,\n",
       "              12028},\n",
       "             644: {6221, 7836, 10546, 12571, 13291, 13297},\n",
       "             255: {21, 2881, 3488, 6333, 9097, 11150},\n",
       "             3273: {1227,\n",
       "              2608,\n",
       "              3512,\n",
       "              6340,\n",
       "              6914,\n",
       "              7337,\n",
       "              8320,\n",
       "              8332,\n",
       "              8695,\n",
       "              9368,\n",
       "              10462,\n",
       "              11278,\n",
       "              11323,\n",
       "              11697,\n",
       "              12988},\n",
       "             3310: {121,\n",
       "              1238,\n",
       "              2911,\n",
       "              3071,\n",
       "              3444,\n",
       "              3933,\n",
       "              6991,\n",
       "              7037,\n",
       "              8317,\n",
       "              11100,\n",
       "              11632,\n",
       "              12504},\n",
       "             1006: {3303, 6128, 6143, 6221, 7730, 10546, 13025},\n",
       "             239: {425, 1289, 5502, 9276, 12147, 13101},\n",
       "             1805: {1185, 2845, 4357, 4664, 5852, 9257, 10462, 12680},\n",
       "             1102: {2190, 3432, 5259, 6451, 10054, 11017},\n",
       "             1843: {286,\n",
       "              720,\n",
       "              973,\n",
       "              1168,\n",
       "              1874,\n",
       "              2338,\n",
       "              2527,\n",
       "              2677,\n",
       "              3326,\n",
       "              4403,\n",
       "              6104,\n",
       "              6259,\n",
       "              7081,\n",
       "              7195,\n",
       "              7364,\n",
       "              7983,\n",
       "              9357,\n",
       "              10950,\n",
       "              11587,\n",
       "              12052},\n",
       "             1851: {641, 2064, 5247, 6128, 6143, 10546},\n",
       "             3352: {5247, 6221, 8875, 10546, 11652, 12571},\n",
       "             3053: {817, 4520, 4808, 7254, 8627, 12018},\n",
       "             1838: {37, 1300, 3284, 8173, 9242, 10817},\n",
       "             944: {1152, 1896, 2397, 4933, 6751, 8689},\n",
       "             222: {7386, 9594, 10219, 12303},\n",
       "             2570: {2046, 6976, 9882, 10462, 11695, 11697},\n",
       "             117: {437, 3342, 4108, 4771, 7688, 11776},\n",
       "             1215: {3303, 5416, 7047, 8875, 10546, 13025},\n",
       "             1247: {1051, 1825, 4197, 4996, 6811, 6900, 7499, 10507, 10692},\n",
       "             2263: {4192, 5105, 7084, 7371, 7529, 8217, 10532, 13199},\n",
       "             1052: {3799, 6781, 8735, 9635, 11116, 11561},\n",
       "             3388: {1227,\n",
       "              1344,\n",
       "              5049,\n",
       "              5329,\n",
       "              6307,\n",
       "              7079,\n",
       "              7992,\n",
       "              10462,\n",
       "              11697,\n",
       "              12217,\n",
       "              12609},\n",
       "             125: {6128, 6143, 6221, 10546, 12571, 13291},\n",
       "             2058: {3303, 4382, 6221, 6800, 10546, 12571},\n",
       "             2521: {1238, 5329, 9407, 10908, 11697},\n",
       "             2681: {1389, 1614, 1867, 4990, 5677, 7892, 8247, 9371},\n",
       "             2871: {197, 5804, 6230, 8019, 9997, 10246},\n",
       "             3338: {3297, 4148, 4985, 6238, 9212, 12935},\n",
       "             2501: {1302, 4515, 8776, 9159, 11377, 11478},\n",
       "             2674: {2260, 5957, 6197, 7044, 8759, 12970},\n",
       "             3044: {676, 1103, 3586, 9217, 9238, 12211},\n",
       "             1925: {3831, 6088, 6955, 7514, 8161, 8614, 11361},\n",
       "             634: {260,\n",
       "              1227,\n",
       "              1344,\n",
       "              3056,\n",
       "              3065,\n",
       "              5329,\n",
       "              8252,\n",
       "              9407,\n",
       "              10462,\n",
       "              11697},\n",
       "             798: {1790, 2499, 9700, 11762, 12745, 13259},\n",
       "             2033: {3303, 5416, 6090, 7670, 11135, 13291},\n",
       "             1037: {3322, 6221, 7047, 7730, 10546, 13025},\n",
       "             2825: {6221, 8875, 10546, 11652, 12571, 13025},\n",
       "             1217: {1202, 1441, 4665, 6310, 8039, 9979, 12349},\n",
       "             1560: {1367,\n",
       "              2670,\n",
       "              4171,\n",
       "              5988,\n",
       "              7513,\n",
       "              8441,\n",
       "              9979,\n",
       "              10345,\n",
       "              11048,\n",
       "              12275},\n",
       "             647: {692, 1984, 2090, 8645, 9359, 11820, 12433},\n",
       "             803: {224, 4608, 6740, 7072, 7758, 10431},\n",
       "             2203: {3926, 5919, 6736, 7926, 8127, 11205},\n",
       "             2620: {260, 348, 615, 2312, 8507, 10462, 11697},\n",
       "             1401: {61, 338, 1377, 1416, 2132, 3405, 9606, 12261, 12933},\n",
       "             510: {357, 712, 5096, 5163, 10587, 10885},\n",
       "             292: {5031, 8409, 9979, 10462, 11697, 12562},\n",
       "             349: {72, 1343, 2363, 5206, 5934, 9128, 11983, 13039},\n",
       "             1091: {430,\n",
       "              2046,\n",
       "              4803,\n",
       "              5139,\n",
       "              7974,\n",
       "              8007,\n",
       "              11447,\n",
       "              11697,\n",
       "              11892,\n",
       "              12466},\n",
       "             3216: {2560, 2923, 6333, 6798, 8416, 9200, 9947},\n",
       "             1474: {2071, 3293, 4482, 9017, 10190, 12668},\n",
       "             228: {1346,\n",
       "              3644,\n",
       "              4955,\n",
       "              5188,\n",
       "              5595,\n",
       "              6188,\n",
       "              6986,\n",
       "              7950,\n",
       "              9088,\n",
       "              9455,\n",
       "              10799,\n",
       "              10979,\n",
       "              12566,\n",
       "              12599},\n",
       "             3011: {2028, 2805, 5210, 5363, 10827, 13076},\n",
       "             1197: {3717, 4871, 6424, 7618, 9303, 11011},\n",
       "             3318: {776,\n",
       "              1256,\n",
       "              2046,\n",
       "              2794,\n",
       "              4367,\n",
       "              4803,\n",
       "              6889,\n",
       "              10350,\n",
       "              10390,\n",
       "              12918},\n",
       "             1311: {529, 2668, 2864, 3753, 6994, 8514, 10696, 12402, 13347},\n",
       "             6: {1539, 2080, 3914, 7313, 8739},\n",
       "             2705: {3124, 5753, 8846, 8847, 10296, 10544},\n",
       "             1441: {1261, 1344, 3456, 3691, 8333, 11100, 12563},\n",
       "             56: {902, 5141, 8676, 9609},\n",
       "             1140: {2573, 5252, 5269, 7231, 8274, 10496, 12557, 13255},\n",
       "             900: {192, 615, 5595, 9644, 10079, 10120},\n",
       "             3169: {477, 1096, 2992, 3789, 7106, 11465},\n",
       "             1455: {409, 1475, 2650, 2841, 3013, 10067, 13094},\n",
       "             1911: {2841, 7333, 7853, 10777, 12414, 12502},\n",
       "             226: {439, 3643, 8621, 9013, 9216, 10637, 11287},\n",
       "             1419: {348, 5574, 7534, 8007, 9051, 13078},\n",
       "             2268: {112,\n",
       "              3521,\n",
       "              4124,\n",
       "              4770,\n",
       "              6267,\n",
       "              7495,\n",
       "              7693,\n",
       "              8165,\n",
       "              9252,\n",
       "              13141},\n",
       "             2907: {698, 945, 952, 1246, 2590, 5574, 7263, 8304, 10669, 11553},\n",
       "             413: {197, 2112, 3378, 7176, 9450, 10246},\n",
       "             2136: {5344, 8162, 10656, 11504, 12505, 12992},\n",
       "             754: {274,\n",
       "              941,\n",
       "              1564,\n",
       "              3219,\n",
       "              4388,\n",
       "              4696,\n",
       "              5149,\n",
       "              5596,\n",
       "              5668,\n",
       "              7029,\n",
       "              8677,\n",
       "              9854,\n",
       "              10165,\n",
       "              10230,\n",
       "              10670,\n",
       "              10829,\n",
       "              12012,\n",
       "              12249,\n",
       "              12255},\n",
       "             2896: {6221, 6800, 10546, 11652, 12571, 13025},\n",
       "             1186: {6165, 6296, 7360, 8887},\n",
       "             2514: {1227, 7337, 10027, 11697, 12608, 12988},\n",
       "             2796: {3303, 5247, 8371, 10546, 13291, 13297},\n",
       "             230: {6090, 6334, 10546, 11652, 13025, 13291, 13297},\n",
       "             2998: {3322, 6090, 6143, 7175, 10546, 13297},\n",
       "             1363: {4147, 4911, 6175, 7481, 7525, 8146},\n",
       "             1294: {599, 6098, 8989, 9459, 12053, 13056},\n",
       "             2048: {465, 3297, 3526, 4796, 8782, 12082},\n",
       "             3068: {2356, 3929, 5542, 8745, 10931, 11884, 13042},\n",
       "             1394: {1159,\n",
       "              1612,\n",
       "              3740,\n",
       "              5057,\n",
       "              7143,\n",
       "              8222,\n",
       "              9555,\n",
       "              9947,\n",
       "              10002,\n",
       "              10153,\n",
       "              10157,\n",
       "              11061,\n",
       "              11769},\n",
       "             929: {1227, 7299, 9075, 10462, 10483, 11697},\n",
       "             2321: {2349, 2721, 6333, 7105, 7788, 9758, 11617, 11888, 12501},\n",
       "             2031: {1142, 5606, 5716, 5957, 6525, 11697},\n",
       "             2088: {3029, 7541, 10277, 12458, 13003},\n",
       "             315: {3024, 3359, 5035, 6082, 11102, 11222},\n",
       "             3218: {260, 1227, 1238, 3065, 5329, 10462, 11697},\n",
       "             851: {8117, 8252, 9051, 9253, 11720, 11937, 12605},\n",
       "             1964: {1643, 5314, 5957, 7331, 12304, 12765},\n",
       "             1193: {6221, 7047, 8875, 10546, 12624, 13025},\n",
       "             2820: {2430, 8386, 8834, 9776, 12269, 12864},\n",
       "             2881: {1227, 7337, 7357, 11697, 12931, 12988, 12996},\n",
       "             1955: {1037, 1990, 2799, 5782, 8845, 11794},\n",
       "             750: {5416, 6221, 10546, 11652, 12571, 13025},\n",
       "             1687: {1185, 4357, 4389, 7223, 10462, 10478},\n",
       "             2640: {82, 529, 1227, 1884, 2864, 6994, 11697, 12254},\n",
       "             2174: {3322, 6143, 6221, 10546, 12571, 12686},\n",
       "             3090: {472, 4411, 6489, 6681, 7772, 7884},\n",
       "             613: {549, 2016, 2658, 3906, 4137, 6582, 11896},\n",
       "             1503: {110, 320, 3725, 4681, 8740},\n",
       "             2429: {1938, 2309, 3275, 3768, 4373, 4956, 6725, 11594, 11785},\n",
       "             1850: {2484, 4222, 6058, 9403, 12494},\n",
       "             2714: {1374, 1803, 3516, 8375, 10767, 11825},\n",
       "             1557: {1142, 1227, 7337, 8695, 10027, 11697},\n",
       "             146: {567, 839, 1161, 1872, 3101, 3210, 7373, 8557, 9419, 9748},\n",
       "             614: {1195, 7465, 10065, 11426, 11861, 13149, 13380},\n",
       "             2040: {562, 865, 1052, 6139, 9354, 9403},\n",
       "             608: {1233,\n",
       "              1567,\n",
       "              2607,\n",
       "              3174,\n",
       "              3525,\n",
       "              3706,\n",
       "              3870,\n",
       "              3955,\n",
       "              4218,\n",
       "              4847,\n",
       "              5483,\n",
       "              7344,\n",
       "              7382,\n",
       "              7516,\n",
       "              8085,\n",
       "              8884,\n",
       "              8939,\n",
       "              9615,\n",
       "              12133,\n",
       "              12154,\n",
       "              12836,\n",
       "              13010,\n",
       "              13405},\n",
       "             881: {1926, 2230, 3808, 8655, 9285, 10133, 12717},\n",
       "             1504: {2423, 3980, 5368, 7805, 10936, 11455},\n",
       "             1463: {655, 5156, 7272, 7274, 8305, 12511},\n",
       "             1002: {2571, 4018, 4049, 8282, 9196, 12707},\n",
       "             2851: {2145, 2651, 4844, 9030, 10441, 10910},\n",
       "             1013: {602, 2255, 6083, 6360, 9363, 10838},\n",
       "             3119: {950, 2023, 3437, 3537, 3917, 7243},\n",
       "             2447: {3454, 7365, 8231, 11039, 11312, 12570, 13346},\n",
       "             3172: {348, 730, 6900, 8252, 9051, 9407, 10474, 11532, 13036},\n",
       "             2527: {5983, 9923, 10120, 10474, 12684},\n",
       "             3186: {1586, 1593, 7714, 9688, 11959, 12653},\n",
       "             2713: {2560, 8416, 9644, 11720, 13222},\n",
       "             1075: {2194, 6553, 7381, 8833, 11118, 11302},\n",
       "             2286: {1255, 4920, 5243, 6024, 8670, 9843},\n",
       "             2216: {1593, 3575, 3657, 7631, 7714, 9390, 12482},\n",
       "             991: {1948, 5749, 5996, 10256, 11133, 11697},\n",
       "             3325: {1227, 6206, 9022, 9075, 9257, 13303},\n",
       "             3003: {4996, 5648, 6913, 8099, 8129, 8492},\n",
       "             2904: {5416, 6143, 6221, 7047, 10546, 13025},\n",
       "             1833: {1052, 2961, 5988, 8948, 12275, 12343},\n",
       "             3245: {2777, 2967, 5057, 9923, 10175},\n",
       "             745: {82, 1227, 1344, 5049, 5329, 11697},\n",
       "             2879: {257, 3072, 5105, 7045, 10724},\n",
       "             2531: {725, 965, 2980, 6062, 10234, 11878},\n",
       "             1972: {3447, 7554, 8521, 10359, 11765, 11997},\n",
       "             642: {539,\n",
       "              1664,\n",
       "              2249,\n",
       "              3043,\n",
       "              3800,\n",
       "              3936,\n",
       "              4328,\n",
       "              4378,\n",
       "              4419,\n",
       "              4729,\n",
       "              5022,\n",
       "              6774,\n",
       "              7386,\n",
       "              7701,\n",
       "              11239,\n",
       "              11533,\n",
       "              12112,\n",
       "              12331,\n",
       "              12420,\n",
       "              12936,\n",
       "              13004,\n",
       "              13321},\n",
       "             893: {6221, 7047, 8875, 10546, 12571, 12624},\n",
       "             1325: {2207, 2813, 4168, 6439, 7006, 9926},\n",
       "             3160: {378,\n",
       "              950,\n",
       "              1552,\n",
       "              2023,\n",
       "              2303,\n",
       "              3819,\n",
       "              4015,\n",
       "              4190,\n",
       "              7031,\n",
       "              9398,\n",
       "              10818,\n",
       "              11187},\n",
       "             2944: {398, 937, 9245, 11763, 12854, 13280},\n",
       "             2776: {3001, 4920, 5849, 7263, 9336, 11736, 12329},\n",
       "             2938: {3362, 5290, 8488, 9029, 12643, 13013},\n",
       "             1498: {6090, 6128, 6143, 7446, 10546, 12624},\n",
       "             657: {1012,\n",
       "              2519,\n",
       "              3303,\n",
       "              4834,\n",
       "              5416,\n",
       "              6800,\n",
       "              7670,\n",
       "              11135,\n",
       "              11858,\n",
       "              13291},\n",
       "             617: {120, 331, 6692, 7053, 7391, 12951},\n",
       "             2694: {2126, 5138, 7340, 8813, 9243, 13104},\n",
       "             1815: {1162, 1227, 7337, 8607, 8695, 11697, 12351, 12988},\n",
       "             3315: {1959, 7038, 8051, 9489, 10525, 13102},\n",
       "             3259: {5416, 6128, 6143, 10546, 13025, 13291},\n",
       "             2393: {2841, 5350, 6452, 7333, 10067, 10777},\n",
       "             582: {1227, 5957, 7337, 8695, 11697, 12988},\n",
       "             265: {7771, 8393, 8723, 10011, 10625, 13215},\n",
       "             2212: {1227, 2339, 4106, 7559, 13059},\n",
       "             2235: {1175,\n",
       "              1218,\n",
       "              2361,\n",
       "              2560,\n",
       "              4296,\n",
       "              7332,\n",
       "              7339,\n",
       "              7663,\n",
       "              7714,\n",
       "              7920,\n",
       "              8099,\n",
       "              8155,\n",
       "              9134,\n",
       "              9644,\n",
       "              9843,\n",
       "              9889,\n",
       "              10278,\n",
       "              11243},\n",
       "             3104: {7080, 7799, 10126, 10169, 10321},\n",
       "             396: {1145, 5614, 5951, 9490, 9904, 11679},\n",
       "             1257: {54, 2047, 2230, 2987, 5967, 12906},\n",
       "             266: {249, 5965, 8099, 9947, 10157, 10908},\n",
       "             2084: {190, 1857, 3563, 4612, 5826, 9537},\n",
       "             142: {1360, 5622, 8997, 11428, 12386},\n",
       "             564: {4803, 7363, 10462, 10653, 11697, 11720, 13078},\n",
       "             3152: {4937, 5298, 5722, 9768, 11178, 11623},\n",
       "             959: {749,\n",
       "              979,\n",
       "              3169,\n",
       "              3708,\n",
       "              4596,\n",
       "              5368,\n",
       "              5704,\n",
       "              6394,\n",
       "              6424,\n",
       "              6783,\n",
       "              7219,\n",
       "              7765,\n",
       "              8830,\n",
       "              9167,\n",
       "              9459,\n",
       "              10671,\n",
       "              12019,\n",
       "              12650},\n",
       "             2869: {796, 1227, 8141, 9979, 10462, 11697},\n",
       "             2: {1633, 6976, 8670, 9134, 9555, 9644, 11364, 13220},\n",
       "             854: {1227, 3605, 7337, 8695, 11697, 12988},\n",
       "             2858: {3091, 4162, 5349, 7550, 8379, 9965, 11282},\n",
       "             2667: {1626, 3759, 3967, 5144, 9947, 13228},\n",
       "             3227: {7398, 7663, 8622, 9134, 11529, 13331},\n",
       "             300: {3739,\n",
       "              4423,\n",
       "              4928,\n",
       "              5766,\n",
       "              6075,\n",
       "              6096,\n",
       "              9020,\n",
       "              11456,\n",
       "              11682,\n",
       "              12642},\n",
       "             1688: {5416, 6221, 7730, 10546, 13025},\n",
       "             3272: {1012, 6128, 6143, 6221, 10546, 12571},\n",
       "             1200: {1005, 3185, 4420, 6277, 7903, 9343, 10602, 12724},\n",
       "             3063: {8, 2230, 2965, 3715, 4348, 8997, 11428},\n",
       "             2577: {5837, 7696, 9197, 10501, 12395, 13134},\n",
       "             3262: {1142, 1227, 2063, 3934, 8207, 11697},\n",
       "             2744: {6653, 6827, 8019, 10256, 10503},\n",
       "             756: {5084, 6051, 9404, 12145, 12937, 13284},\n",
       "             1349: {1489, 4050, 4793, 5715, 6430},\n",
       "             1891: {9, 1227, 2737, 7337, 8695, 11697, 12988},\n",
       "             1308: {1781, 2150, 2857, 4615, 7482, 12441, 12560, 13363},\n",
       "             2332: {3866, 5406, 5989, 9834, 10779, 12621},\n",
       "             1415: {7281, 7857, 8946, 10893, 12571, 12720},\n",
       "             72: {95, 8051, 9489, 10323, 13314},\n",
       "             398: {1227, 1344, 2046, 5329, 7534, 8539, 10053, 10474, 11697},\n",
       "             1426: {1046, 1778, 2593, 3044, 6834, 7448},\n",
       "             2247: {80, 1227, 7337, 10293, 11697, 12988},\n",
       "             2469: {1227, 1441, 7337, 10462, 11697, 12931, 12988, 13121},\n",
       "             452: {1202, 1227, 2389, 7337, 8928, 12988},\n",
       "             51: {508, 4824, 9503, 10277, 11149, 11893},\n",
       "             620: {2104, 5879, 6832, 7460, 12657, 13252},\n",
       "             1628: {1287, 2230, 2693, 2965, 3946, 6211, 7131, 8638, 12531},\n",
       "             474: {1750, 6939, 7230, 9459, 11894, 12870},\n",
       "             1144: {1238, 3573, 10079, 11364, 11529, 12423},\n",
       "             346: {4546, 5311, 9247, 10002, 10121, 11424, 11720},\n",
       "             3208: {2841, 6245, 7333, 10777, 12934},\n",
       "             2437: {1767,\n",
       "              2257,\n",
       "              2985,\n",
       "              7920,\n",
       "              8023,\n",
       "              9010,\n",
       "              9880,\n",
       "              10175,\n",
       "              11008,\n",
       "              12448,\n",
       "              12566},\n",
       "             1435: {1147, 1927, 2152, 3862, 5692, 7322, 7870, 11916},\n",
       "             80: {2123, 3555, 4238, 7580, 8114, 8863, 11497},\n",
       "             2177: {20, 1227, 1924, 2012, 10462, 11697},\n",
       "             322: {3149, 9170, 9621, 11859},\n",
       "             2270: {622, 2146, 10464, 11267, 12281, 12309},\n",
       "             2554: {530, 1486, 3949, 6980, 7747, 8514, 11792},\n",
       "             2261: {516, 1021, 8589, 13076, 13160, 13164},\n",
       "             1629: {2870, 3258, 4832, 4878, 5980, 9361},\n",
       "             2378: {845, 1026, 1665, 8159, 9007, 9762},\n",
       "             1660: {366, 1151, 5729, 5811, 6724, 9141},\n",
       "             2824: {2259, 5633, 9093, 10424, 10510, 12116, 13326},\n",
       "             169: {235,\n",
       "              254,\n",
       "              1691,\n",
       "              5845,\n",
       "              6112,\n",
       "              6453,\n",
       "              6903,\n",
       "              8158,\n",
       "              8576,\n",
       "              10027,\n",
       "              12292,\n",
       "              12963,\n",
       "              13249},\n",
       "             1232: {5721, 6926, 8893, 10935},\n",
       "             1697: {906, 4697, 5782, 7080, 10169, 10546},\n",
       "             506: {146,\n",
       "              2021,\n",
       "              4256,\n",
       "              4869,\n",
       "              4909,\n",
       "              5019,\n",
       "              5823,\n",
       "              6638,\n",
       "              6754,\n",
       "              7477,\n",
       "              10786,\n",
       "              13352},\n",
       "             1028: {853, 985, 1227, 1238, 1344, 3056, 5732},\n",
       "             557: {684, 1381, 7820, 8036, 10492, 12556},\n",
       "             1310: {586,\n",
       "              803,\n",
       "              1452,\n",
       "              2904,\n",
       "              3942,\n",
       "              5642,\n",
       "              6745,\n",
       "              7938,\n",
       "              8135,\n",
       "              9736,\n",
       "              9859,\n",
       "              10637,\n",
       "              12397,\n",
       "              12741},\n",
       "             2663: {271, 3790, 6268, 7910, 11453, 12139},\n",
       "             1967: {155, 6967, 11079, 11131, 11887, 13112},\n",
       "             189: {1879, 4519, 9118, 10118, 11234, 12667},\n",
       "             220: {2046, 2606, 2680, 5426, 9645, 9882, 11697},\n",
       "             2596: {489,\n",
       "              771,\n",
       "              820,\n",
       "              2343,\n",
       "              2733,\n",
       "              3145,\n",
       "              3979,\n",
       "              4487,\n",
       "              6651,\n",
       "              7056,\n",
       "              8213,\n",
       "              10759,\n",
       "              11549,\n",
       "              12256,\n",
       "              12322},\n",
       "             2017: {342, 2075, 3137, 3973, 5548, 7741, 7778, 10508, 12330},\n",
       "             1901: {2258, 3445, 4376, 4775, 10571, 12025},\n",
       "             552: {3443, 4996, 7359, 8043, 8173, 9242, 10817},\n",
       "             1912: {107, 1633, 2967, 4486, 8416, 9200, 10002},\n",
       "             930: {2568, 5180, 5351, 5558, 6803, 7789, 8227},\n",
       "             1380: {1, 10, 106, 829, 11708, 12544},\n",
       "             903: {409, 1475, 2376, 3013, 6123, 10013, 10067, 12502},\n",
       "             2285: {862, 959, 2231, 3445, 11353, 12718},\n",
       "             2304: {1227, 1408, 7337, 8695, 9979, 11697, 12988},\n",
       "             2954: {2901, 3153, 4194, 6495, 6532, 7767, 10114, 12930},\n",
       "             2833: {853, 1238, 1584, 2768},\n",
       "             2103: {853, 6901, 8052, 8238, 9176, 9644, 10079, 11191},\n",
       "             2771: {2560, 6333, 7263, 7306, 9644, 12423},\n",
       "             0: {1581, 2046, 5983, 9484, 9841, 11021},\n",
       "             1499: {676, 6180, 7047, 8093, 10191, 12872},\n",
       "             2924: {464, 2345, 13248, 13382},\n",
       "             2569: {1044, 4461, 4996, 6041, 8301, 8953},\n",
       "             3253: {2936, 4095, 5237, 8010, 9436, 10583, 11513, 11960},\n",
       "             2605: {3426,\n",
       "              5416,\n",
       "              6128,\n",
       "              6143,\n",
       "              6221,\n",
       "              7730,\n",
       "              8875,\n",
       "              10546,\n",
       "              11652,\n",
       "              12571,\n",
       "              13025},\n",
       "             2433: {1720, 2134, 5945, 6444, 7183, 11455},\n",
       "             1950: {1142, 1227, 2713, 9304, 10462, 11697, 12988, 13121},\n",
       "             905: {95, 3286, 5056, 6477, 8711, 9489},\n",
       "             2860: {7047, 7857, 11342, 12219, 12320, 12571},\n",
       "             764: {1162, 1227, 1266, 7337, 8695, 10410},\n",
       "             778: {107, 1218, 4296, 5720, 7345, 10331},\n",
       "             789: {823, 1146, 2978, 6942, 9593, 10907, 11304, 12468, 12666},\n",
       "             3041: {1306, 1563, 1723, 2359, 3033, 6619, 7061, 9139, 12454},\n",
       "             2720: {236,\n",
       "              572,\n",
       "              2408,\n",
       "              3787,\n",
       "              4996,\n",
       "              6398,\n",
       "              6987,\n",
       "              8047,\n",
       "              8541,\n",
       "              9336,\n",
       "              10079,\n",
       "              10120,\n",
       "              11200,\n",
       "              11603,\n",
       "              12346,\n",
       "              12447,\n",
       "              12588},\n",
       "             2095: {1573, 1798, 3721, 6491, 9148, 10875, 11543},\n",
       "             1287: {1439, 3472, 4905, 5320, 12585, 13264},\n",
       "             2147: {440,\n",
       "              666,\n",
       "              1197,\n",
       "              1329,\n",
       "              1506,\n",
       "              1707,\n",
       "              2686,\n",
       "              3829,\n",
       "              5896,\n",
       "              8297,\n",
       "              9449,\n",
       "              9892,\n",
       "              9963,\n",
       "              10997,\n",
       "              11839,\n",
       "              12648,\n",
       "              12774},\n",
       "             431: {349, 5285, 9919, 10855, 12490, 13179},\n",
       "             1673: {1920, 3342, 4603, 8039, 8847, 9977, 11994},\n",
       "             1707: {603, 759, 3040, 3652, 3993, 5962, 7309, 9410, 9608, 11991},\n",
       "             1614: {166,\n",
       "              619,\n",
       "              1844,\n",
       "              2566,\n",
       "              3547,\n",
       "              4208,\n",
       "              4324,\n",
       "              4880,\n",
       "              6065,\n",
       "              6326,\n",
       "              6467,\n",
       "              9992,\n",
       "              12893},\n",
       "             846: {3982, 4653, 10324, 10422, 11673, 12533},\n",
       "             128: {5387, 6708, 6711, 10259, 11782, 11831, 12806},\n",
       "             1713: {2841, 3375, 7333, 9298, 10067, 10777, 12111, 12502},\n",
       "             3363: {524, 6177, 7372, 7489, 10624, 12172},\n",
       "             1932: {907, 1509, 4594, 5671, 7753, 12691},\n",
       "             1794: {348,\n",
       "              853,\n",
       "              1227,\n",
       "              4546,\n",
       "              6411,\n",
       "              8252,\n",
       "              9051,\n",
       "              9407,\n",
       "              11424,\n",
       "              11697,\n",
       "              11937},\n",
       "             3165: {3176, 4409, 5366, 10432},\n",
       "             1635: {3298, 3355, 3580, 8416, 9648, 10863},\n",
       "             2682: {3322, 6221, 7047, 7730, 10546, 12571},\n",
       "             1202: {2654, 2821, 7153, 9378, 10714, 11086},\n",
       "             3360: {387, 5199, 5471, 9424, 10882, 12453},\n",
       "             2488: {5416, 6221, 7277, 7836, 10546, 12571, 13025},\n",
       "             127: {3322, 5416, 6090, 6221, 10546, 11652},\n",
       "             1246: {1098, 1637, 1647, 1732, 3854, 4279},\n",
       "             1244: {370, 5535, 5957, 6145, 6330, 9842},\n",
       "             523: {345, 3107, 8039, 9619, 9979, 12194, 12578},\n",
       "             3120: {1583, 1655, 2601, 8039, 8331, 10962, 12578, 13075},\n",
       "             1973: {430, 2046, 4803, 7974, 11697, 11892},\n",
       "             914: {4332, 4501, 4912, 6333, 8616, 10002, 11147},\n",
       "             1573: {403, 5211, 5860, 6509, 6915, 11402},\n",
       "             3284: {2779, 3303, 6221, 8875, 10546, 12571, 13025},\n",
       "             1249: {626, 1776, 3602, 5776, 6129, 11870},\n",
       "             60: {1142, 4603, 7072, 8039, 9979, 10945, 12349},\n",
       "             1651: {2181,\n",
       "              3032,\n",
       "              3892,\n",
       "              6241,\n",
       "              6874,\n",
       "              7095,\n",
       "              10377,\n",
       "              10475,\n",
       "              11033,\n",
       "              11830,\n",
       "              12020,\n",
       "              12120},\n",
       "             561: {1494, 3034, 5792, 10301, 12139, 12347},\n",
       "             2917: {464, 2783, 8039, 10547, 12275, 12578},\n",
       "             342: {802, 1245, 1272, 2118, 8886, 10993},\n",
       "             1430: {383, 918, 3016, 3100, 4827, 9018},\n",
       "             2306: {631, 7332, 7448, 8099, 8670, 10967},\n",
       "             3135: {1063, 1227, 3278, 4543, 9979, 10320, 11697},\n",
       "             3383: {295,\n",
       "              1227,\n",
       "              5480,\n",
       "              5743,\n",
       "              6606,\n",
       "              9289,\n",
       "              9766,\n",
       "              9979,\n",
       "              10462,\n",
       "              11697},\n",
       "             2654: {695, 2275, 2879, 4391, 7638, 11776},\n",
       "             825: {302, 1675, 3446, 5608, 6897, 7214, 8627, 9087, 11252},\n",
       "             627: {1904, 2344, 6309, 8920, 12538, 12919},\n",
       "             1155: {1539, 2230, 3914, 4209, 6641, 8655, 8739},\n",
       "             1682: {1614,\n",
       "              3475,\n",
       "              4274,\n",
       "              4990,\n",
       "              5677,\n",
       "              5760,\n",
       "              5944,\n",
       "              6771,\n",
       "              9653,\n",
       "              10926,\n",
       "              11063},\n",
       "             507: {1545, 2560, 3198, 7359, 10053, 10692},\n",
       "             3121: {6750, 7328, 8123, 10845, 11542, 11614},\n",
       "             2192: {952, 1586, 3575, 4498, 5587, 7445, 7631, 10724},\n",
       "             2343: {10067, 10777, 12111, 12414, 12502, 12527},\n",
       "             2539: {111, 2079, 4741, 7177, 10364, 12744},\n",
       "             1534: {928, 3549, 6289, 6406, 7509, 8479},\n",
       "             1122: {1010,\n",
       "              2179,\n",
       "              2924,\n",
       "              4010,\n",
       "              4417,\n",
       "              4845,\n",
       "              5342,\n",
       "              5417,\n",
       "              6119,\n",
       "              6579,\n",
       "              6888,\n",
       "              7356,\n",
       "              8133,\n",
       "              8329,\n",
       "              9052,\n",
       "              10217,\n",
       "              11862,\n",
       "              11930,\n",
       "              12632,\n",
       "              12755,\n",
       "              12783,\n",
       "              12977},\n",
       "             489: {1279, 4384, 7253, 8044, 10397, 11948},\n",
       "             2415: {987, 2618, 2801, 5779, 6187, 7904, 10120, 11886, 13113},\n",
       "             2785: {3541, 5424, 6339, 9520, 9670, 12680},\n",
       "             2499: {529, 1185, 2864, 9368, 9525, 9811},\n",
       "             919: {3150, 6757, 8729, 8828, 9220, 9500, 10699, 13303},\n",
       "             2363: {45, 1033, 1653, 3246, 3803, 9189, 10446, 12066},\n",
       "             799: {8120, 8475, 9416, 9570, 13154, 13377},\n",
       "             2339: {906, 5782, 8294, 10126, 10321, 10495},\n",
       "             678: {2989, 8121, 8130, 12918, 13344},\n",
       "             2348: {97, 1119, 2379, 3272, 8881, 9974},\n",
       "             1709: {1227, 7337, 8695, 10462, 11697, 12988},\n",
       "             502: {2649, 4745, 10447, 11488},\n",
       "             790: {3587, 4285, 4399, 4713, 6882, 10237, 12140},\n",
       "             1789: {348, 1227, 1344, 5329, 8252, 8670, 9051, 9407, 11697},\n",
       "             1248: {540, 4709, 5829, 6302, 6314, 8524},\n",
       "             2244: {3398, 4869, 7939, 8124, 9326, 9456, 11117, 11303},\n",
       "             2806: {3303, 5247, 6128, 6143, 10546, 11652},\n",
       "             556: {701, 4946, 7038, 8051, 9489, 10822, 13102},\n",
       "             1364: {560, 1752, 4921, 5731, 6741, 7011, 7786},\n",
       "             2368: {2751, 3985, 6110, 9327, 9526, 10731},\n",
       "             2717: {1142,\n",
       "              1227,\n",
       "              1862,\n",
       "              4969,\n",
       "              5615,\n",
       "              7337,\n",
       "              8332,\n",
       "              10462,\n",
       "              11697,\n",
       "              12988},\n",
       "             2808: {4544, 5219, 5369, 6476, 10002, 11021},\n",
       "             2895: {505,\n",
       "              533,\n",
       "              2098,\n",
       "              2130,\n",
       "              3141,\n",
       "              4626,\n",
       "              4922,\n",
       "              5593,\n",
       "              8134,\n",
       "              9896,\n",
       "              10107,\n",
       "              11427,\n",
       "              11737,\n",
       "              12768,\n",
       "              13005},\n",
       "             2915: {207, 1686, 2376, 7533, 8558, 8646, 12532},\n",
       "             2751: {1227, 7337, 10462, 11697, 12988, 13121},\n",
       "             1162: {906, 5782, 10126, 10495, 10546, 11171},\n",
       "             1403: {5416, 6090, 6128, 6143, 10546, 13291},\n",
       "             2089: {2858,\n",
       "              5247,\n",
       "              6221,\n",
       "              7047,\n",
       "              7281,\n",
       "              7702,\n",
       "              7836,\n",
       "              8875,\n",
       "              9004,\n",
       "              10546,\n",
       "              12720,\n",
       "              13008},\n",
       "             3296: {1586, 6503, 8539, 9200, 9923, 10724},\n",
       "             598: {96, 5243, 7394, 7920, 8099, 9164},\n",
       "             1227: {1644, 4202, 7508, 11284, 12097, 12978},\n",
       "             505: {1741, 2836, 3378, 9964, 11693, 13407},\n",
       "             2589: {495, 1677, 5806, 8751, 9248, 10812, 13024},\n",
       "             41: {259, 3673, 3727, 4113, 5486, 5778, 6163, 8569, 10862},\n",
       "             1591: {52, 2729, 2957, 3433, 3730, 4941, 10787, 12660},\n",
       "             2439: {2230, 4348, 6657, 8739, 10788, 12543},\n",
       "             2317: {944, 3805, 7882, 8518, 9790, 11035},\n",
       "             1125: {7337, 8695, 9801, 11936},\n",
       "             2249: {2016, 4137, 4734, 7228, 7876, 9492},\n",
       "             2069: {1600, 4959, 8120, 10462, 11697, 12293},\n",
       "             2622: {2376, 3375, 7643, 8646, 9765, 10067, 10777},\n",
       "             427: {1854, 5625, 7919, 9183, 12881, 12983},\n",
       "             1334: {1142, 1227, 7337, 11248, 12234, 12645},\n",
       "             3274: {1793, 3313, 4009, 4623, 5968, 7806, 10998},\n",
       "             2764: {573, 3303, 5416, 6090, 6143, 13297},\n",
       "             840: {2131, 4525, 4812, 8450, 8823, 10544, 11994},\n",
       "             2930: {2249, 3805, 4703, 10141, 11103, 12279},\n",
       "             1100: {1641, 2462, 4058, 7278, 7644, 7724, 8046, 10342},\n",
       "             2455: {1037, 2799, 5782, 8548, 10126, 11794},\n",
       "             1913: {2036, 2046, 4803, 8372, 9244, 10462, 10517, 11697, 13078},\n",
       "             2891: {5452, 7263, 8670, 10278, 10692},\n",
       "             1136: {1103, 5270, 6221, 7047, 10039, 10722},\n",
       "             196: {590, 1227, 1238, 1344, 3056, 5329, 10548, 11100, 11697},\n",
       "             1627: {3850, 6486, 7497, 8047, 10521, 12440},\n",
       "             2096: {5247, 6128, 6221, 10546, 11652, 12571, 13025},\n",
       "             976: {348, 2036, 3065, 7677, 8252, 9051, 9322, 12605},\n",
       "             2702: {1628, 3456, 4631, 5628, 5983, 6607, 7248, 8809},\n",
       "             2161: {1480, 3204, 5418, 5535, 7286, 10974},\n",
       "             1078: {420,\n",
       "              888,\n",
       "              2470,\n",
       "              3135,\n",
       "              6225,\n",
       "              6533,\n",
       "              7490,\n",
       "              7906,\n",
       "              8709,\n",
       "              10328,\n",
       "              11334,\n",
       "              12781},\n",
       "             626: {104, 167, 2979, 3265, 3770, 6542, 7491, 11099},\n",
       "             1862: {853, 5585, 8007, 9881, 9882, 11019},\n",
       "             2331: {1362, 2606, 4757, 6669, 9011, 10120, 12088},\n",
       "             867: {170, 944, 4572, 4762, 12403, 13040},\n",
       "             3202: {395, 542, 4903, 5343, 7705, 9242},\n",
       "             1667: {3322, 3426, 6128, 6143, 6221, 7047, 10546},\n",
       "             29: {4354, 6081, 6518, 9580, 10351, 12076, 12354, 12766},\n",
       "             1921: {709, 3927, 5204, 6893, 7054, 7641, 7843},\n",
       "             600: {681,\n",
       "              3611,\n",
       "              5226,\n",
       "              6081,\n",
       "              6967,\n",
       "              8320,\n",
       "              9424,\n",
       "              10390,\n",
       "              10678,\n",
       "              11282,\n",
       "              12599,\n",
       "              13268},\n",
       "             295: {202,\n",
       "              1227,\n",
       "              5049,\n",
       "              5977,\n",
       "              7109,\n",
       "              9810,\n",
       "              10462,\n",
       "              11697,\n",
       "              12609,\n",
       "              13000},\n",
       "             1336: {3147, 3839, 5849, 7359, 9644, 10817},\n",
       "             3207: {1142, 1227, 2648, 2969, 5957, 6341, 7337, 11697, 12988},\n",
       "             153: {570, 4886, 5236, 6227, 7149},\n",
       "             2547: {1021, 1141, 4165, 11630, 13076, 13264},\n",
       "             1142: {1862, 10410, 10716, 10992, 11323, 12467},\n",
       "             2718: {1137,\n",
       "              1602,\n",
       "              2938,\n",
       "              2943,\n",
       "              3390,\n",
       "              3791,\n",
       "              4237,\n",
       "              5739,\n",
       "              7303,\n",
       "              8515,\n",
       "              9031,\n",
       "              9906,\n",
       "              11330,\n",
       "              11626,\n",
       "              12481,\n",
       "              13011},\n",
       "             3232: {6221, 8875, 10546, 11652, 12571, 13025},\n",
       "             772: {3029, 6128, 6143, 6221, 7836, 10546},\n",
       "             129: {1656, 3301, 9839, 10021, 12827, 12837, 13053},\n",
       "             1828: {6090, 6221, 10546, 11652, 12571, 13025},\n",
       "             1141: {1185, 1227, 1913, 7223, 8514, 11697},\n",
       "             418: {3426,\n",
       "              5247,\n",
       "              5416,\n",
       "              6128,\n",
       "              6143,\n",
       "              6221,\n",
       "              10546,\n",
       "              11652,\n",
       "              12571,\n",
       "              12624},\n",
       "             845: {83, 3003, 5055, 8167, 8315, 8533},\n",
       "             3205: {6090, 6128, 7047, 10546, 13291, 13297},\n",
       "             69: {1185, 1227, 5570, 10214, 10462, 11697},\n",
       "             2217: {3322, 6128, 6143, 10546, 11652, 12571},\n",
       "             1999: {2321, 6181, 6864, 11711, 11733, 13242},\n",
       "             1643: {2012, 7030, 8411, 10462, 12009},\n",
       "             373: {4345, 4365, 7472, 8226, 10079, 10956, 11900},\n",
       "             1875: {153, 5712, 5987, 9120, 12817},\n",
       "             2540: {490, 2060, 2828, 9180, 9638, 9644, 10026, 12283},\n",
       "             2590: {115, 3471, 3644, 6160, 11093, 11720},\n",
       "             2886: {209, 6772, 9089, 10371, 11013, 13138},\n",
       "             625: {123,\n",
       "              149,\n",
       "              195,\n",
       "              287,\n",
       "              308,\n",
       "              751,\n",
       "              1380,\n",
       "              1432,\n",
       "              1982,\n",
       "              2217,\n",
       "              2317,\n",
       "              2578,\n",
       "              3235,\n",
       "              3321,\n",
       "              3435,\n",
       "              3461,\n",
       "              3467,\n",
       "              4067,\n",
       "              4280,\n",
       "              4516,\n",
       "              5091,\n",
       "              5660,\n",
       "              5917,\n",
       "              6556,\n",
       "              6635,\n",
       "              6672,\n",
       "              6938,\n",
       "              7234,\n",
       "              7349,\n",
       "              7466,\n",
       "              7598,\n",
       "              7613,\n",
       "              7782,\n",
       "              8102,\n",
       "              8273,\n",
       "              8327,\n",
       "              8736,\n",
       "              9149,\n",
       "              9504,\n",
       "              9561,\n",
       "              9701,\n",
       "              9780,\n",
       "              10137,\n",
       "              10795,\n",
       "              10860,\n",
       "              12065,\n",
       "              13067,\n",
       "              13243,\n",
       "              13327},\n",
       "             807: {6095, 7853, 9765, 10777, 12502, 12934},\n",
       "             308: {4048, 4918, 6014, 8304, 12233, 12403, 12738},\n",
       "             2992: {1578, 4549, 5037, 6288, 8611, 12494},\n",
       "             1448: {1631, 7338, 7853, 10777, 12414, 12934},\n",
       "             2032: {1227, 5791, 9075, 10772, 11697, 12880},\n",
       "             2157: {5213, 6215, 7462, 9023, 9814, 10473},\n",
       "             2516: {58,\n",
       "              517,\n",
       "              600,\n",
       "              1047,\n",
       "              1456,\n",
       "              1952,\n",
       "              2143,\n",
       "              2197,\n",
       "              2800,\n",
       "              4575,\n",
       "              4698,\n",
       "              5694,\n",
       "              6640,\n",
       "              6712,\n",
       "              7233,\n",
       "              7936,\n",
       "              8220,\n",
       "              8634,\n",
       "              8919,\n",
       "              9845,\n",
       "              10008,\n",
       "              10585,\n",
       "              10989,\n",
       "              11522,\n",
       "              12607,\n",
       "              12795,\n",
       "              12971},\n",
       "             1116: {770, 808, 2167, 4703, 8130, 8983},\n",
       "             3341: {757, 1921, 2230, 5146, 11595, 12921, 13356},\n",
       "             3276: {1360, 2625, 3012, 6044, 6749, 6981, 7418},\n",
       "             982: {323, 1034, 4791, 5117, 7198, 8008, 8467, 9281, 9618, 11196},\n",
       "             2355: {281, 5702, 6040, 6161, 7270, 9060, 9808, 11193, 12160},\n",
       "             1084: {983, 1936, 4046, 5598, 6871, 8552, 9044, 10213},\n",
       "             1552: {1091, 2380, 2466, 3431, 3445, 5679},\n",
       "             2301: {3915, 4721, 5957, 8695, 9675, 9979},\n",
       "             257: {3351, 3619, 4286, 6514, 9952, 13003},\n",
       "             2635: {297, 5914, 6621, 8695, 10462, 11697, 12988},\n",
       "             438: {46, 699, 2722, 5266, 8681, 11690},\n",
       "             1861: {107, 1593, 4296, 4498, 8155, 9200},\n",
       "             2571: {5853, 6642, 7207, 9249, 10701, 10874},\n",
       "             2995: {814, 2399, 3334, 4889, 5401, 5586, 7985, 12773},\n",
       "             2152: {2296, 4139, 7417, 8039, 8141, 12814},\n",
       "             2093: {1216, 1753, 2520, 3073, 7972},\n",
       "             540: {263,\n",
       "              2822,\n",
       "              4000,\n",
       "              4260,\n",
       "              6145,\n",
       "              7226,\n",
       "              9979,\n",
       "              10772,\n",
       "              12027,\n",
       "              12234},\n",
       "             2722: {468, 2865, 6914, 9733, 12886},\n",
       "             269: {3410, 6791, 7768, 9749, 9883, 11285},\n",
       "             2258: {1210, 2289, 3606, 7191, 10792, 10856},\n",
       "             144: {2820,\n",
       "              4777,\n",
       "              5650,\n",
       "              5686,\n",
       "              7000,\n",
       "              7745,\n",
       "              8624,\n",
       "              10172,\n",
       "              11324,\n",
       "              11748,\n",
       "              11847,\n",
       "              12524},\n",
       "             3073: {735,\n",
       "              2252,\n",
       "              5305,\n",
       "              5797,\n",
       "              7329,\n",
       "              9462,\n",
       "              10538,\n",
       "              11867,\n",
       "              11882,\n",
       "              13130},\n",
       "             1990: {2244, 4920, 5452, 8413, 10517, 12796},\n",
       "             1488: {7,\n",
       "              15,\n",
       "              2823,\n",
       "              4508,\n",
       "              5322,\n",
       "              5940,\n",
       "              6166,\n",
       "              7074,\n",
       "              7172,\n",
       "              7238,\n",
       "              8420,\n",
       "              8453,\n",
       "              8517,\n",
       "              9053,\n",
       "              9578,\n",
       "              9978,\n",
       "              11619,\n",
       "              13129,\n",
       "              13234},\n",
       "             1896: {4093, 5976, 9329, 9616, 10641, 12591},\n",
       "             1126: {1142, 1227, 7337, 7383, 11697, 12988},\n",
       "             1821: {1012, 3322, 5247, 6221, 7047, 10546, 12571},\n",
       "             3032: {216, 2376, 5499, 8024, 8646, 12414},\n",
       "             3012: {1593, 1718, 2553, 3517, 4182, 7714, 7800, 9390},\n",
       "             2465: {5247, 5682, 10603, 12331},\n",
       "             1167: {854, 6943, 8144, 8252, 9051, 9407},\n",
       "             73: {2230, 3678, 3989, 4348, 9111, 12543},\n",
       "             760: {3303, 5416, 6090, 6221, 10546, 12571, 13025},\n",
       "             1563: {327, 3284, 3593, 4210, 4378, 4873, 7386},\n",
       "             777: {4083, 4525, 8525, 10520, 11056, 11138},\n",
       "             1507: {2788, 3617, 6916, 7346, 10772},\n",
       "             86: {3072, 7478, 9200, 9923, 10817, 12492},\n",
       "             2245: {3322, 5416, 6143, 6221, 7277, 10546},\n",
       "             2264: {2435, 2753, 3153, 4749, 8160, 9839, 9863, 10021, 11090},\n",
       "             2080: {84, 1139, 2228, 2472, 3054, 4517, 9141, 10449, 12295},\n",
       "             2282: {2097, 2841, 3680, 4045, 4421, 5898, 12898, 13094},\n",
       "             3261: {5179, 5247, 6090, 6900, 12567, 13291},\n",
       "             1453: {280, 1958, 2378, 10353, 12646, 13030},\n",
       "             1216: {7337, 7547, 7964, 9697, 12497, 12988},\n",
       "             603: {3322, 6128, 6143, 8829, 10546, 12567, 13291},\n",
       "             2091: {5416, 6221, 7047, 7836, 10546, 11652, 13025},\n",
       "             2996: {3297, 3609, 3869, 3947, 6374, 7473},\n",
       "             1963: {2611, 2645, 5958, 8990, 10711, 11575, 12323},\n",
       "             450: {2097, 2376, 5350, 6452, 6630, 7333, 7338, 10777},\n",
       "             2000: {3580, 4204, 5276, 8416, 10692, 13119},\n",
       "             1449: {788, 5884, 7366, 8039, 10101, 10920},\n",
       "             2836: {1582, 4345, 5868, 10079, 11364, 13222},\n",
       "             1732: {364,\n",
       "              717,\n",
       "              1026,\n",
       "              1340,\n",
       "              1975,\n",
       "              2565,\n",
       "              3103,\n",
       "              3175,\n",
       "              3654,\n",
       "              3853,\n",
       "              4363,\n",
       "              4640,\n",
       "              4687,\n",
       "              5331,\n",
       "              6106,\n",
       "              8619,\n",
       "              9299,\n",
       "              9474,\n",
       "              9516,\n",
       "              10051,\n",
       "              11351,\n",
       "              11645,\n",
       "              12252,\n",
       "              12895,\n",
       "              13276},\n",
       "             1176: {21, 348, 6160, 10474, 11137, 11720},\n",
       "             921: {2133, 2330, 4960, 6530, 8118, 10883},\n",
       "             2266: {1227, 3305, 4476, 8926, 9499, 12876},\n",
       "             3006: {54, 1921, 4349, 5514, 5622, 6641, 10104},\n",
       "             2517: {3518, 4374, 6006, 7315, 9112, 9441},\n",
       "             1038: {6090, 6800, 10546, 11652, 12624, 13291},\n",
       "             1379: {1980, 2054, 5089, 5632, 8691, 11667, 11933},\n",
       "             2106: {1942, 2993, 5087, 5661, 11276, 11998},\n",
       "             1472: {834, 2105, 4027, 7069, 7728, 7890, 12388},\n",
       "             3195: {4354, 5471, 6081, 6126, 8068, 8975, 12354},\n",
       "             414: {339, 478, 7036, 9388, 10551, 12553},\n",
       "             317: {1227, 3351, 7337, 8695, 11697, 12988},\n",
       "             3297: {1954, 5717, 5821, 6079, 6389, 9510},\n",
       "             1322: {7173, 7783, 8908, 10975, 12222, 13087},\n",
       "             1752: {6128, 6143, 10546, 12686, 13025, 13297},\n",
       "             2707: {2694, 4440, 6669, 6843, 7858, 10120},\n",
       "             532: {3012, 3183, 3989, 4348, 6517, 11283, 11428, 11935, 12439},\n",
       "             3136: {5368, 5637, 7219, 9167, 9459, 9816, 10645},\n",
       "             2182: {3772, 4287, 4393, 8580, 9735, 13115},\n",
       "             3142: {348, 1238, 3065, 8252, 9051, 9407},\n",
       "             590: {5416, 7446, 10546, 11652, 13025, 13291},\n",
       "             609: {1028, 2447, 7987, 8514, 9075, 10079},\n",
       "             2060: {3322, 6128, 6143, 6221, 10546, 12571},\n",
       "             2087: {991,\n",
       "              1027,\n",
       "              1546,\n",
       "              2748,\n",
       "              3022,\n",
       "              3130,\n",
       "              3136,\n",
       "              3399,\n",
       "              3552,\n",
       "              4794,\n",
       "              7010,\n",
       "              7492,\n",
       "              8286,\n",
       "              9899,\n",
       "              10497,\n",
       "              10553,\n",
       "              10736,\n",
       "              10990,\n",
       "              11650,\n",
       "              11686,\n",
       "              11703,\n",
       "              11987,\n",
       "              12472,\n",
       "              13176,\n",
       "              13262},\n",
       "             2097: {1545, 7534, 10053, 10653, 10916, 11697},\n",
       "             2923: {644, 857, 1716, 4205, 4724, 10134, 12402},\n",
       "             542: {1433, 3653, 5137, 7353, 12703, 13325},\n",
       "             2757: {5247, 6221, 10546, 11135, 11652, 12571, 13291},\n",
       "             2386: {1021, 1459, 4786, 10715, 10899, 13076},\n",
       "             2189: {2482, 3588, 7924, 8338, 8501, 9270},\n",
       "             2692: {1813, 4800, 7334, 9098, 9951, 12327},\n",
       "             3307: {3001, 8099, 8416, 8872, 10692, 11172},\n",
       "             696: {466,\n",
       "              3116,\n",
       "              3169,\n",
       "              3377,\n",
       "              3692,\n",
       "              5714,\n",
       "              7319,\n",
       "              7742,\n",
       "              7765,\n",
       "              8104,\n",
       "              9103,\n",
       "              9459},\n",
       "             824: {4907, 7862, 7982, 9314, 11406, 13289},\n",
       "             1281: {54, 180, 2230, 5409, 5967, 7503, 10104},\n",
       "             3312: {1227, 3605, 7337, 8695, 10027, 10356},\n",
       "             1994: {54, 2987, 3905, 7503, 8739, 10104},\n",
       "             933: {1211, 3828, 4065, 5538, 10032, 10120, 10258, 12045, 12393},\n",
       "             885: {3218, 4047, 4291, 5328, 6453, 8576, 10135},\n",
       "             2013: {6221, 7047, 7159, 7730, 10893, 12571},\n",
       "             3301: {513, 1227, 7337, 8262, 8695, 12521},\n",
       "             3331: {1468, 3343, 6061, 6315, 8870, 10776},\n",
       "             298: {514, 2018, 2039, 10123, 12576, 13184},\n",
       "             1309: {213, 1030, 6414, 6511, 8197, 11937},\n",
       "             1915: {853, 1238, 9407, 10692, 11191, 11697},\n",
       "             3082: {3414, 4665, 8806, 11049, 11493, 12989},\n",
       "             2618: {1539, 2230, 5994, 6641, 8655, 9714},\n",
       "             139: {4632, 5539, 6354, 7519, 7571, 9044, 11524},\n",
       "             2133: {54, 1184, 4351, 9285, 10133, 11376},\n",
       "             1153: {2046, 4803, 6160, 7678, 9882, 10462, 11697},\n",
       "             1664: {1581, 2046, 4803, 10390, 10462, 10692, 11697},\n",
       "             3094: {5247, 6090, 7175, 8875, 10546, 11135, 13025, 13291},\n",
       "             1238: {1142, 2966, 7012, 7275, 8039, 8877},\n",
       "             3149: {1227, 7258, 9289, 9499, 11697, 13346},\n",
       "             3028: {4491, 5339, 6366, 7893, 10006, 12117, 12522},\n",
       "             1259: {2342, 4718, 7701, 8896, 9912, 13321},\n",
       "             2484: {688, 1006, 1656, 6689, 8397, 10021, 12827, 13053},\n",
       "             543: {965, 3737, 4392, 5986, 6062, 13061},\n",
       "             3237: {338, 1117, 2046, 3644, 9882, 12566},\n",
       "             1633: {1227,\n",
       "              1441,\n",
       "              2389,\n",
       "              2601,\n",
       "              2819,\n",
       "              3365,\n",
       "              6648,\n",
       "              7337,\n",
       "              8262,\n",
       "              11697,\n",
       "              12931,\n",
       "              12988},\n",
       "             1880: {1227, 1802, 2262, 2389, 11697, 12988},\n",
       "             2807: {1227, 2318, 2883, 7337},\n",
       "             2829: {4152, 5008, 5616, 8218, 8433, 10423, 11714},\n",
       "             4: {37,\n",
       "              1477,\n",
       "              3198,\n",
       "              3474,\n",
       "              3580,\n",
       "              3822,\n",
       "              4296,\n",
       "              6527,\n",
       "              8155,\n",
       "              8854,\n",
       "              10091,\n",
       "              11845},\n",
       "             1842: {1960, 2245, 3697, 4750, 8457, 9641, 12157},\n",
       "             802: {1671, 3407, 5001, 6335, 7371, 7733},\n",
       "             655: {5416, 6128, 6143, 8137, 10546, 13025},\n",
       "             1603: {348,\n",
       "              3476,\n",
       "              3598,\n",
       "              4480,\n",
       "              4778,\n",
       "              5543,\n",
       "              6010,\n",
       "              7677,\n",
       "              8318,\n",
       "              9407,\n",
       "              9835,\n",
       "              10197,\n",
       "              11076,\n",
       "              11697,\n",
       "              12998},\n",
       "             2467: {13, 7567, 9478, 10740, 11838, 12786},\n",
       "             3192: {348, 854, 5009, 8252, 9051, 11364},\n",
       "             2728: {7434, 10867, 11095, 11532, 11616, 12917},\n",
       "             1844: {2251, 2274, 2560, 8099, 9176, 11424},\n",
       "             1748: {313, 3080, 8799, 9286, 10869, 12090},\n",
       "             3077: {197,\n",
       "              348,\n",
       "              1227,\n",
       "              2158,\n",
       "              3190,\n",
       "              3378,\n",
       "              3459,\n",
       "              5925,\n",
       "              7176,\n",
       "              7901,\n",
       "              8177,\n",
       "              8252,\n",
       "              9051,\n",
       "              9407,\n",
       "              11697,\n",
       "              12910},\n",
       "             168: {1598, 3007, 5205, 6748, 9442},\n",
       "             834: {4616, 4891, 4962, 5843, 8020, 8864, 11665},\n",
       "             1561: {444, 5356, 7406, 8076, 9893, 11544},\n",
       "             2816: {1131, 1994, 5975, 6972, 7144, 8497, 10236, 12141, 13391},\n",
       "             2117: {768, 1792, 1957, 9323, 11189, 11903, 12056},\n",
       "             1425: {1525, 2882, 4169, 5314, 5535, 7661},\n",
       "             970: {260, 503, 1344, 5170, 5329, 8249},\n",
       "             1365: {230, 3902, 8775, 9331, 10908, 11952, 12424},\n",
       "             2636: {2336, 2376, 2650, 3013, 4946, 9765, 10067},\n",
       "             1464: {1131, 6169, 7168, 7786, 8228, 11201, 13384},\n",
       "             3270: {2672, 4953, 6738, 7752},\n",
       "             3288: {3426, 6128, 6143, 10546, 13291},\n",
       "             2370: {1841, 2280, 2383, 3587, 4713, 5243},\n",
       "             195: {9882, 11019, 11191, 11424, 11697, 12638},\n",
       "             2778: {3782, 7869, 7897, 8637, 9642, 12545},\n",
       "             3377: {5416, 6128, 6143, 6221, 10546, 12571},\n",
       "             382: {425, 2661, 3036, 4259, 4456, 5108, 12147},\n",
       "             2818: {1690, 3345, 4723, 6841, 9785, 11332, 13189},\n",
       "             1314: {1227, 4270, 4357, 4950, 5311, 7337, 11697, 12988},\n",
       "             2408: {1873, 2445, 6730, 6818, 11515, 12506},\n",
       "             2417: {3965, 6049, 7765, 9949, 10182, 10281},\n",
       "             581: {663, 4051, 4224, 5773, 7210, 7845, 11298, 12879},\n",
       "             892: {421, 591, 2515, 4718, 4947, 5966, 8319, 9979},\n",
       "             1392: {2344, 8022, 8362, 10044, 12313, 12528},\n",
       "             2769: {1227, 4357, 5521, 9075, 11697, 12680},\n",
       "             1382: {4498, 5841, 7018, 9176, 9342, 12466},\n",
       "             1158: {810, 2878, 6862, 10018},\n",
       "             2905: {463, 2141, 3344, 4500, 9479, 11475, 11931},\n",
       "             2284: {357, 6836, 6900, 8483, 10587, 11023},\n",
       "             3306: {3662, 4084, 4155, 4200, 4462, 10149},\n",
       "             1143: {778, 1142, 1227, 10462, 11697, 12184},\n",
       "             357: {3303, 5416, 6090, 10546, 12686, 13297},\n",
       "             415: {3426, 5247, 5416, 10546, 11135, 13025, 13291},\n",
       "             3139: {3953, 4471, 8911, 9521, 11889, 13171},\n",
       "             2599: {4765, 4903, 6110, 7386, 7646},\n",
       "             2967: {374, 5535, 5957, 6951, 10410, 11697, 12234, 12988},\n",
       "             897: {6143, 6221, 7047, 7836, 10546, 12571, 12686},\n",
       "             1421: {1449, 1472, 3113, 3774, 4867, 5817, 6926, 13354},\n",
       "             2855: {1626, 2048, 6585, 6901, 7332, 8099, 9644, 9947, 12674},\n",
       "             984: {291, 354, 648, 1311, 1629, 6989, 11773},\n",
       "             1152: {857, 1185, 1227, 3309, 4768, 5555, 6307, 7060, 11697},\n",
       "             1637: {3364, 8077, 8313, 9487},\n",
       "             2767: {2866, 4618, 7230, 9459, 10738, 12870},\n",
       "             2761: {1759, 3644, 4065, 4450, 11364, 12803, 12917},\n",
       "             1332: {3031, 3284, 4227, 7529, 7701, 8405},\n",
       "             3051: {492, 766, 4540, 6102, 11340, 12377, 13182},\n",
       "             2193: {2828, 2988, 4469, 6901, 9644, 10908},\n",
       "             375: {348, 1227, 1344, 5329, 9051, 11697},\n",
       "             503: {616, 4855, 7401, 9075, 9527, 11697},\n",
       "             482: {6090, 6128, 6143, 7047, 7670, 10546, 12624},\n",
       "             862: {4433, 5016, 7263, 8099, 8701, 9644},\n",
       "             3342: {1392, 2198, 5185, 6925, 7877, 9979},\n",
       "             310: {6221, 7836, 8875, 10546, 12571, 13025},\n",
       "             2602: {107, 3580, 3839, 8043, 8416, 10817},\n",
       "             1345: {67, 3589, 5333, 7076, 9412, 10231},\n",
       "             713: {1203, 3488, 5028, 8387, 11940, 11956},\n",
       "             2305: {1589, 5086, 5978, 9866, 9905, 12730},\n",
       "             673: {1299, 2002, 4360, 5861, 7464, 9466, 12067},\n",
       "             3389: {4943, 6105, 6204, 7792, 9163, 12683},\n",
       "             2352: {1338, 1848, 4667, 5309, 7374, 8598},\n",
       "             2379: {348, 1227, 1344, 5329, 6411, 8252, 9051, 9407, 11697},\n",
       "             3378: {2046, 2153, 3354, 4803, 9882, 10462, 11697, 13268},\n",
       "             2239: {4525, 4579, 4812, 7003, 8847, 11176},\n",
       "             1390: {3298, 3351, 7263, 8337, 9644, 9935, 10057, 10079, 11853},\n",
       "             1111: {7920, 8099, 8670, 10692},\n",
       "             91: {1200, 1714, 4387, 6939, 10489, 11339},\n",
       "             1574: {2060, 2828, 5163, 5777, 6742, 12985},\n",
       "             406: {1227, 1238, 1344, 3190, 6519, 11937},\n",
       "             770: {430, 2046, 4803, 9000, 11697, 11892},\n",
       "             559: {4831, 8737, 9382, 9759, 12220, 13161},\n",
       "             2645: {1227, 2151, 7320, 7831, 10462, 11697},\n",
       "             1719: {6090, 10546, 11652, 12571, 13025, 13291},\n",
       "             2755: {1685, 7304, 7602, 8254, 8340, 10418, 13007},\n",
       "             2630: {1664, 2773, 6110, 6355, 7607, 11384},\n",
       "             3184: {4260, 5533, 6544, 9846, 10412, 10662},\n",
       "             3241: {409, 1475, 2376, 4819, 4892, 9765},\n",
       "             1619: {736, 4830, 5465, 7609, 9008, 10582},\n",
       "             2318: {140,\n",
       "              1017,\n",
       "              2191,\n",
       "              2322,\n",
       "              2876,\n",
       "              3058,\n",
       "              3314,\n",
       "              3923,\n",
       "              4261,\n",
       "              4931,\n",
       "              5610,\n",
       "              5635,\n",
       "              6499,\n",
       "              6646,\n",
       "              7369,\n",
       "              7743,\n",
       "              9475,\n",
       "              9547,\n",
       "              9557,\n",
       "              9579,\n",
       "              9695,\n",
       "              11249,\n",
       "              11403,\n",
       "              11717,\n",
       "              13097},\n",
       "             668: {152, 1994, 4137, 4885, 7228, 12621},\n",
       "             1790: {635, 2633, 3016, 8882, 9072, 10156},\n",
       "             1128: {1227,\n",
       "              1280,\n",
       "              4682,\n",
       "              5314,\n",
       "              7337,\n",
       "              8141,\n",
       "              8151,\n",
       "              8695,\n",
       "              10654,\n",
       "              11481,\n",
       "              11697,\n",
       "              12685,\n",
       "              12931,\n",
       "              13260},\n",
       "             2195: {3072, 4729, 7386, 10184, 10648, 12449},\n",
       "             915: {1413, 4881, 10033, 10085, 11761, 12372},\n",
       "             706: {3322, 6128, 6143, 8875, 10546, 13291},\n",
       "             1940: {1131, 1239, 1807, 6408, 12323, 13118, 13318},\n",
       "             2652: {1593,\n",
       "              7445,\n",
       "              9200,\n",
       "              9392,\n",
       "              9923,\n",
       "              10053,\n",
       "              10692,\n",
       "              10724,\n",
       "              11070,\n",
       "              13090,\n",
       "              13151},\n",
       "             1011: {54, 2230, 6641, 9671, 10104, 10133},\n",
       "             818: {2387, 2622, 5253, 7361, 7813, 9624},\n",
       "             2999: {354, 925, 2341, 2918, 4019, 10864},\n",
       "             1323: {837, 1053, 3655, 4404, 12244, 13118},\n",
       "             2476: {6221, 7047, 7281, 7730, 8927, 10893, 12720},\n",
       "             2882: {2046,\n",
       "              4803,\n",
       "              6094,\n",
       "              6160,\n",
       "              6663,\n",
       "              8007,\n",
       "              9024,\n",
       "              9882,\n",
       "              9980,\n",
       "              10462,\n",
       "              11697,\n",
       "              12566,\n",
       "              12918},\n",
       "             200: {2600, 3445, 5326, 5469, 7312, 13334},\n",
       "             2830: {2560, 3838, 7920, 8416, 9644, 10692},\n",
       "             323: {109, 1988, 4021, 5006, 8700, 9829},\n",
       "             3013: {4221, 4250, 5905, 7701, 8896, 11540},\n",
       "             1694: {217, 2861, 6395, 6557, 11564},\n",
       "             2877: {2880, 6350, 7994, 10285, 10614, 10904},\n",
       "             1198: {3303, 5247, 5416, 6221, 10546, 11652, 12571, 13025},\n",
       "             1569: {1420, 2046, 4803, 8059, 10462, 11697, 13268},\n",
       "             472: {242,\n",
       "              1366,\n",
       "              2962,\n",
       "              6092,\n",
       "              7653,\n",
       "              7750,\n",
       "              10110,\n",
       "              10317,\n",
       "              11320,\n",
       "              12865,\n",
       "              13257},\n",
       "             2167: {5247, 5416, 6221, 10546, 12571, 13025},\n",
       "             2634: {1220, 4846, 5274, 6505, 7117, 12905},\n",
       "             2685: {3355, 5243, 7932, 9644, 10942, 11766, 12653},\n",
       "             844: {146, 2284, 11042, 11385, 11552, 13124},\n",
       "             2371: {168,\n",
       "              460,\n",
       "              1639,\n",
       "              1645,\n",
       "              2113,\n",
       "              5893,\n",
       "              7704,\n",
       "              8336,\n",
       "              8599,\n",
       "              9657,\n",
       "              10336,\n",
       "              10643,\n",
       "              11120,\n",
       "              11265,\n",
       "              11751,\n",
       "              13175},\n",
       "             2283: {2843, 8089, 9043, 9483, 11994, 12318},\n",
       "             2021: {2783, 4236, 4549, 6251, 8039, 11994, 12275},\n",
       "             198: {152, 1994, 4814, 8667, 9960, 11270},\n",
       "             2868: {3256, 4662, 5834, 6122, 12548, 13330},\n",
       "             1824: {898, 3072, 5810, 6834, 9200, 11240},\n",
       "             2435: {796, 1227, 7337, 8695, 11697, 12988},\n",
       "             1766: {2260, 3011, 5957, 11697, 12988},\n",
       "             2274: {130, 1568, 1648, 6045, 9222, 9956, 11025, 12403, 12899},\n",
       "             848: {1227, 7337, 10462, 11697, 12931, 12988},\n",
       "             3334: {347,\n",
       "              881,\n",
       "              1423,\n",
       "              1632,\n",
       "              2278,\n",
       "              2953,\n",
       "              3025,\n",
       "              3165,\n",
       "              3335,\n",
       "              3361,\n",
       "              3531,\n",
       "              3971,\n",
       "              4460,\n",
       "              4492,\n",
       "              4868,\n",
       "              5316,\n",
       "              6239,\n",
       "              6342,\n",
       "              6578,\n",
       "              6620,\n",
       "              7098,\n",
       "              7467,\n",
       "              7504,\n",
       "              8381,\n",
       "              8516,\n",
       "              8564,\n",
       "              8653,\n",
       "              9370,\n",
       "              9620,\n",
       "              11228,\n",
       "              11418,\n",
       "              12647},\n",
       "             2322: {700, 2400, 4359, 10353, 11231, 13030},\n",
       "             2163: {931, 2032, 6506, 7132, 11229, 11739},\n",
       "             243: {1649, 7263, 8037, 10002, 10079, 10653},\n",
       "             2912: {1398, 5595, 5882, 8666, 10002, 10031},\n",
       "             2240: {2046, 4803, 9882, 10462, 10653, 11697},\n",
       "             1519: {1943, 3132, 8854, 10002, 10120},\n",
       "             796: {54, 2230, 5967, 10104, 10528, 11376},\n",
       "             22: {2177, 6025, 6463, 11236, 11430, 12972},\n",
       "             3282: {2109, 5595, 9923, 12403, 12670, 12684},\n",
       "             2546: {4346, 6145, 9075, 10462, 10987, 11966},\n",
       "             1329: {2555, 3310, 6381, 10560, 11531, 12954},\n",
       "             2373: {4201, 8754, 10927, 11742},\n",
       "             1437: {6128, 6143, 6221, 8194, 10546, 12686},\n",
       "             1097: {2046, 3284, 4206, 4803, 7974, 11892, 12918},\n",
       "             605: {2524, 6498, 6902, 8195},\n",
       "             483: {7498, 8190, 9135, 10411, 13158, 13162},\n",
       "             2020: {1686, 2376, 7333, 7853, 8646, 10777},\n",
       "             671: {1227, 7337, 10462, 11697, 12988, 13121},\n",
       "             2666: {3072, 3407, 5024, 7118, 8888, 8891},\n",
       "             2919: {7047, 7281, 7702, 9337, 10191, 12720},\n",
       "             2213: {1850, 2899, 3072, 3873, 3959, 8906},\n",
       "             1451: {5416, 6334, 8371, 10546, 11135, 11652, 12624, 13291},\n",
       "             533: {6669, 7586, 8131, 10120, 10944, 12243, 12659},\n",
       "             3074: {1434, 3498, 6089, 6218, 8452, 12193},\n",
       "             461: {6221, 7565, 10546, 11652, 12571, 13291},\n",
       "             3173: {1377, 2046, 4803, 5254, 6094, 10462, 11447, 11697},\n",
       "             1550: {1227, 7072, 7337, 11323, 11697, 12988},\n",
       "             841: {1142,\n",
       "              2783,\n",
       "              3440,\n",
       "              3604,\n",
       "              5161,\n",
       "              8039,\n",
       "              8847,\n",
       "              9654,\n",
       "              10452,\n",
       "              11419,\n",
       "              12494},\n",
       "             1081: {3322, 6143, 6221, 7047, 10546, 12571},\n",
       "             326: {245,\n",
       "              257,\n",
       "              812,\n",
       "              817,\n",
       "              1095,\n",
       "              1568,\n",
       "              1626,\n",
       "              3072,\n",
       "              7631,\n",
       "              10063,\n",
       "              11218,\n",
       "              12418},\n",
       "             2215: {3989, 4348, 5874, 6666, 8739, 10528, 10565},\n",
       "             1690: {2563, 3089, 8072, 11669, 11891, 12689},\n",
       "             1279: {2560, 8099, 8416, 9200, 9644, 10079, 12043},\n",
       "             1292: {1389, 1614, 5677, 7892, 8647, 10926, 11749},\n",
       "             372: {2489, 6200, 8894, 10016, 10965, 11183, 12957},\n",
       "             2512: {1699, 2730, 2739, 5270, 5924, 6223, 9589, 9864, 10218},\n",
       "             2205: {6221, 7047, 7446, 10546, 11652, 12571},\n",
       "             1297: {1576, 4783, 9183, 9857, 11214, 12637, 12983},\n",
       "             1476: {348, 430, 7766, 9407, 10079, 11191},\n",
       "             1742: {5247, 6090, 6221, 7836, 10546, 13297},\n",
       "             2159: {506, 1551, 2014, 6846, 10325, 12772},\n",
       "             111: {3198, 3580, 4131, 7359, 8539, 10817},\n",
       "             662: {93, 4789, 5113, 6777, 6945, 10958, 12287, 12941},\n",
       "             965: {1467, 3262, 3841, 4971, 5744, 6052},\n",
       "             2902: {2453,\n",
       "              2585,\n",
       "              3009,\n",
       "              3215,\n",
       "              4638,\n",
       "              5673,\n",
       "              6507,\n",
       "              6645,\n",
       "              8096,\n",
       "              8363},\n",
       "             1595: {1227, 7337, 8094, 9289, 11697, 12988},\n",
       "             108: {1227, 1693, 7337, 9979, 11697, 12988},\n",
       "             1606: {2605, 2771, 4435, 4712, 9970, 13139},\n",
       "             1235: {849, 2890, 4016, 9169, 9328, 11022},\n",
       "             1856: {3297, 4684, 8506, 10314, 11597, 11709},\n",
       "             1462: {335, 2917, 6424, 9924, 12661, 13046},\n",
       "             2442: {2230, 2332, 9634, 10133, 10322, 12906},\n",
       "             14: {1746, 2698, 5470, 8325, 8383, 10637},\n",
       "             120: {4603, 5877, 8039, 8840, 9929, 11572},\n",
       "             817: {1756,\n",
       "              2024,\n",
       "              5057,\n",
       "              5207,\n",
       "              6333,\n",
       "              6834,\n",
       "              8594,\n",
       "              9783,\n",
       "              10917,\n",
       "              13412},\n",
       "             2209: {1661, 6614, 7072, 8039, 11048, 12578},\n",
       "             397: {1384, 2305, 2606, 3488, 9200, 10692, 12408, 12440},\n",
       "             3211: {2195, 2376, 2841, 6095, 12414, 12502},\n",
       "             2633: {1227,\n",
       "              1238,\n",
       "              3056,\n",
       "              3065,\n",
       "              3456,\n",
       "              5329,\n",
       "              5452,\n",
       "              6301,\n",
       "              8252,\n",
       "              9407,\n",
       "              11697},\n",
       "             1366: {784, 2586, 4802, 8453, 8886, 11546},\n",
       "             177: {1870, 4576, 4683, 7744, 8190, 8988, 10095, 11822},\n",
       "             663: {2048, 7359, 8416, 9644, 12440},\n",
       "             3381: {56, 5116, 6380, 8462, 8532, 11397},\n",
       "             1746: {421, 3500, 4703, 5471, 6081, 10462, 11697},\n",
       "             1980: {197, 1559, 1973, 3378, 7176, 8501},\n",
       "             997: {1227, 3797, 7337, 8018, 8695, 10244, 12797},\n",
       "             3370: {414, 490, 6885, 8337, 11027, 12200},\n",
       "             1931: {730, 2046, 4803, 8364, 10462, 11697},\n",
       "             2101: {82,\n",
       "              699,\n",
       "              1344,\n",
       "              3741,\n",
       "              3855,\n",
       "              5049,\n",
       "              5329,\n",
       "              5560,\n",
       "              5574,\n",
       "              5724,\n",
       "              8249,\n",
       "              8800,\n",
       "              11408},\n",
       "             81: {906, 3211, 5270, 5782, 7080, 10169, 11333},\n",
       "             3213: {418,\n",
       "              2344,\n",
       "              2948,\n",
       "              3576,\n",
       "              4166,\n",
       "              4330,\n",
       "              4894,\n",
       "              5222,\n",
       "              6323,\n",
       "              6655,\n",
       "              7082,\n",
       "              7803,\n",
       "              7952,\n",
       "              8209,\n",
       "              8820,\n",
       "              9161,\n",
       "              9424,\n",
       "              9533,\n",
       "              9534,\n",
       "              9802,\n",
       "              10093,\n",
       "              10572,\n",
       "              11800,\n",
       "              11907,\n",
       "              12354,\n",
       "              12740,\n",
       "              13006,\n",
       "              13363},\n",
       "             1016: {2518, 3379, 5742, 9267, 11166, 11689},\n",
       "             2066: {1107, 2473, 5871, 6306, 8852, 9672, 13038},\n",
       "             2985: {2703, 4525, 5745, 8450, 8635, 10544},\n",
       "             839: {1039, 2013, 3514, 5471, 6081, 6084, 8328, 9554},\n",
       "             1299: {216, 1686, 2340, 3716, 7333, 8024},\n",
       "             1825: {2024, 3072, 3517, 6836, 7714, 9923},\n",
       "             2655: {4912, 4996, 5680, 9049, 10460, 11271, 12566},\n",
       "             260: {2783, 5231, 8039, 8847, 11372, 11527},\n",
       "             2168: {2230, 5622, 8458, 9111, 9328, 11428},\n",
       "             2446: {1018, 1227, 6010, 7894, 8143, 11697},\n",
       "             724: {2230, 5459, 6641, 8655, 8739, 11376},\n",
       "             1362: {1227, 3797, 7337, 8695, 9083, 11697},\n",
       "             2928: {534, 3380, 5456, 8192, 10398, 12849},\n",
       "             2939: {833, 2708, 5159, 6565, 9107, 11496},\n",
       "             1984: {6710, 7263, 7332, 10079, 10517, 11720},\n",
       "             3065: {1807, 5505, 5695, 7673, 11920, 13403},\n",
       "             118: {1227, 1280, 7337, 8695, 11697, 12988, 13260},\n",
       "             2246: {159,\n",
       "              483,\n",
       "              843,\n",
       "              921,\n",
       "              2086,\n",
       "              2188,\n",
       "              2749,\n",
       "              2872,\n",
       "              3880,\n",
       "              3954,\n",
       "              4610,\n",
       "              5354,\n",
       "              6184,\n",
       "              6599,\n",
       "              7065,\n",
       "              9942,\n",
       "              10457,\n",
       "              11275,\n",
       "              11727,\n",
       "              11795},\n",
       "             2394: {265, 853, 3014, 6994, 12402, 13303},\n",
       "             2508: {388, 474, 2999, 4876, 7300, 12614},\n",
       "             2225: {348,\n",
       "              1227,\n",
       "              1344,\n",
       "              5329,\n",
       "              8252,\n",
       "              9051,\n",
       "              9407,\n",
       "              10004,\n",
       "              11697,\n",
       "              11937},\n",
       "             2111: {1142, 1227, 1933, 4558, 7337, 8695, 10462, 11697, 12988},\n",
       "             3181: {1142, 1227, 5609, 6310, 8094, 10071, 10462, 11697},\n",
       "             2664: {1896, 2200, 4619, 8549, 12190, 12201, 13200},\n",
       "             1649: {6143, 6221, 8875, 10546, 11652, 12571, 13025},\n",
       "             2889: {455, 1142, 2920, 4106, 5609, 8039, 10154, 12675},\n",
       "             2486: {1227, 6529, 7337, 8695, 8929, 10462, 11697, 12988},\n",
       "             967: {3072, 5786, 9200, 10760},\n",
       "             2128: {3322, 6143, 6221, 10546, 12571, 13025},\n",
       "             1722: {1238, 2210, 5163, 7263, 7359, 8505},\n",
       "             2280: {6090, 6221, 8875, 10546, 11652, 13025},\n",
       "             1672: {1686, 2376, 2841, 3882, 7853, 10777},\n",
       "             1737: {612, 2447, 3238, 10393, 10600, 13352},\n",
       "             233: {6913, 7141, 7178, 8343, 9889, 10523, 10546, 10562},\n",
       "             3209: {1823, 4526, 7682, 8358, 10368, 10784},\n",
       "             998: {426,\n",
       "              2446,\n",
       "              3975,\n",
       "              4405,\n",
       "              8214,\n",
       "              8604,\n",
       "              8843,\n",
       "              8861,\n",
       "              9268,\n",
       "              11700,\n",
       "              11744,\n",
       "              13037},\n",
       "             2604: {2817, 4533, 5124, 6634, 9587, 10215},\n",
       "             1377: {454, 7230, 7435, 10050, 11894, 12870},\n",
       "             2953: {763, 2230, 2811, 5361, 8279, 9111},\n",
       "             1729: {95,\n",
       "              473,\n",
       "              1193,\n",
       "              1451,\n",
       "              6316,\n",
       "              6477,\n",
       "              7038,\n",
       "              8831,\n",
       "              9489,\n",
       "              11296,\n",
       "              11370,\n",
       "              11919},\n",
       "             800: {1357, 6558, 11697, 12321, 12453},\n",
       "             2916: {3322, 5247, 6143, 6221, 10546, 12571},\n",
       "             2679: {1227, 3532, 4547, 5615, 7310, 12349, 12884},\n",
       "             2551: {2376, 10067, 10599, 10777, 12414, 12502, 13094},\n",
       "             2459: {2560, 2828, 4345, 4577, 6901, 8099, 10908, 11364, 12985},\n",
       "             791: {37, 1681, 6275, 6500, 6820, 8304, 9645},\n",
       "             2536: {114,\n",
       "              678,\n",
       "              1021,\n",
       "              6801,\n",
       "              8370,\n",
       "              8895,\n",
       "              9124,\n",
       "              9375,\n",
       "              9983,\n",
       "              9998,\n",
       "              10337,\n",
       "              10982},\n",
       "             114: {1227,\n",
       "              2788,\n",
       "              7337,\n",
       "              7605,\n",
       "              8695,\n",
       "              10462,\n",
       "              11697,\n",
       "              12497,\n",
       "              12988,\n",
       "              13120},\n",
       "             1968: {3635, 7440, 8429, 11359, 12617, 13172},\n",
       "             2591: {4230, 4532, 4747, 8688, 11828, 12833},\n",
       "             2870: {170, 1100, 5240, 5471, 10019, 10189},\n",
       "             1820: {2195, 2376, 10777, 12414, 12502},\n",
       "             1909: {2456, 3197, 7574, 9582, 9633, 9979},\n",
       "             1251: {1344, 1491, 4996, 6109, 7506, 9051, 9882, 9933, 10178},\n",
       "             2350: {905, 3012, 4234, 5034, 6101, 8682},\n",
       "             3091: {1221, 3378, 3401, 3988, 5201, 7176, 9376, 10796, 11144},\n",
       "             3225: {973, 4655, 5052, 9032, 11168, 11380},\n",
       "             2493: {1389,\n",
       "              1614,\n",
       "              1867,\n",
       "              3402,\n",
       "              3429,\n",
       "              3475,\n",
       "              3995,\n",
       "              5194,\n",
       "              5393,\n",
       "              5677,\n",
       "              5910,\n",
       "              7892,\n",
       "              8247,\n",
       "              9371,\n",
       "              10926,\n",
       "              11749},\n",
       "             7: {427, 521, 3445, 8016, 8402, 12182},\n",
       "             981: {1012, 3823, 5416, 6800, 10546, 13291},\n",
       "             1954: {357, 2235, 5473, 6836, 8247, 9644, 10587},\n",
       "             1780: {1227, 2360, 5049, 6307, 10240, 10462, 11697, 11860, 13417},\n",
       "             928: {2418, 3249, 6860, 8039, 11062, 11213},\n",
       "             2146: {1312, 1749, 2037, 7600, 7989, 11148},\n",
       "             1012: {1347, 4873, 7901, 8891, 9580, 9594},\n",
       "             2485: {1681, 3567, 4400, 5696, 8891, 12331},\n",
       "             1962: {5562, 6221, 7047, 8316, 10546, 11489},\n",
       "             166: {371, 563, 2403, 8225, 8769},\n",
       "             761: {1359, 1700, 4975, 6994, 8388, 10257, 12363},\n",
       "             656: {116, 815, 1403, 3488, 4273, 4884, 6976, 7340, 9923, 11116},\n",
       "             2535: {1227, 1708, 2570, 6310, 10462, 11697, 12858},\n",
       "             2474: {201, 1248, 1824, 6709, 7422, 8934},\n",
       "             2132: {1849, 2012, 3810, 5535, 6145, 10462, 11280},\n",
       "             454: {2097, 2841, 5350, 8692, 9298, 13094},\n",
       "             3156: {1281, 2704, 3999, 9915, 11148, 11957},\n",
       "             887: {152,\n",
       "              2516,\n",
       "              3259,\n",
       "              3356,\n",
       "              3661,\n",
       "              5101,\n",
       "              5142,\n",
       "              5638,\n",
       "              7427,\n",
       "              8412,\n",
       "              13086,\n",
       "              13229},\n",
       "             2843: {1040, 2140, 4548, 7439, 9315, 9838, 10566},\n",
       "             1319: {348, 853, 5452, 6976, 9051, 11191},\n",
       "             3269: {2561, 5057, 5559, 6900, 6966, 7359, 11781},\n",
       "             960: {7719, 7909, 8749, 8916, 12847, 13019},\n",
       "             1727: {3284, 8173, 9074, 9242, 9743, 11596},\n",
       "             2647: {3303, 3322, 5247, 6143, 6221, 10546},\n",
       "             1342: {3601, 5528, 6303, 8657, 9072},\n",
       "             2927: {945, 1065, 2699, 3072, 4498, 8145, 9734},\n",
       "             1433: {956, 1710, 3004, 3231, 5419, 6281, 7959},\n",
       "             954: {686, 7927, 9034, 10401, 12769, 13250},\n",
       "             2671: {6128, 6143, 6221, 10546, 12571, 12686},\n",
       "             2389: {1836, 2846, 3277, 7161, 8827, 9173},\n",
       "             1941: {380,\n",
       "              2250,\n",
       "              4257,\n",
       "              6997,\n",
       "              7007,\n",
       "              8152,\n",
       "              8374,\n",
       "              8554,\n",
       "              8713,\n",
       "              8961,\n",
       "              10343,\n",
       "              11382},\n",
       "             500: {1227, 7337, 8695, 9979, 11697, 12988},\n",
       "             3030: {1974, 2271, 4521, 8120, 10274, 10459, 12245},\n",
       "             288: {676, 4099, 5247, 9979, 10546},\n",
       "             1618: {5268, 7263, 8951, 9644, 10692, 12807},\n",
       "             42: {1142, 1227, 2897, 7337, 8141, 11697, 12931},\n",
       "             1355: {2012, 7998, 10462, 10478, 10679, 12476, 13116},\n",
       "             3351: {117, 3654, 6936, 7013, 9656},\n",
       "             1540: {2381, 3441, 5782, 7080, 8660, 9798, 10169},\n",
       "             1703: {676, 5247, 7281, 9337, 10191, 12720},\n",
       "             2523: {5416, 6128, 6143, 10546, 13025, 13291},\n",
       "             2573: {1316, 1559, 3378, 5257, 7176, 8229, 9450, 10246, 11144},\n",
       "             89: {1342, 1415, 5424, 10955, 11278, 12341},\n",
       "             1220: {4359, 4820, 6338, 10861, 11509},\n",
       "             813: {4588, 4718, 4796, 6110, 6713, 7386},\n",
       "             388: {3322, 6221, 7047, 7857, 8946, 10893},\n",
       "             1567: {5356, 9458, 9893, 10947, 10964, 11801},\n",
       "             2150: {829, 3420, 4004, 4527, 6626, 10967},\n",
       "             287: {16, 212, 1126, 9613, 12163, 13286},\n",
       "             2875: {568,\n",
       "              1104,\n",
       "              2046,\n",
       "              5097,\n",
       "              6188,\n",
       "              7354,\n",
       "              7726,\n",
       "              8612,\n",
       "              10279,\n",
       "              10474,\n",
       "              11697,\n",
       "              12202,\n",
       "              13095},\n",
       "             1027: {5416, 6128, 6143, 6221, 10546, 12571},\n",
       "             2700: {4778, 4848, 5452, 9176, 9246, 10044, 10164},\n",
       "             2151: {1920, 2489, 5520, 5646, 5884, 8039, 9289},\n",
       "             1620: {565, 5563, 7011, 11677, 12250, 13359},\n",
       "             1677: {348, 952, 1865, 2312, 8456, 9051, 9779, 11447, 13181},\n",
       "             2243: {57, 6895, 7553, 11059, 12380, 12961},\n",
       "             2576: {2509, 2828, 8670, 11036, 11532, 11566},\n",
       "             1114: {3303, 6221, 7670, 10546, 13025, 13291},\n",
       "             1765: {1356, 2224, 3002, 6012, 6156, 10596},\n",
       "             2061: {515,\n",
       "              1042,\n",
       "              3005,\n",
       "              4284,\n",
       "              5271,\n",
       "              5554,\n",
       "              7500,\n",
       "              7795,\n",
       "              8848,\n",
       "              9996,\n",
       "              11180,\n",
       "              12632},\n",
       "             983: {292, 625, 3216, 9958, 10951, 12587},\n",
       "             645: {3322, 5416, 6221, 10546, 11652, 12571, 13025},\n",
       "             868: {348, 1227, 3364, 8252, 9051, 9407, 12605},\n",
       "             3337: {151, 856, 3837, 4306, 5741, 9536},\n",
       "             1751: {1012, 5247, 6143, 6221, 10546, 12571},\n",
       "             3226: {1301, 1362, 5437, 8308, 10023, 10512},\n",
       "             21: {797, 6673, 8140, 8369},\n",
       "             3196: {565, 4071, 6641, 6657, 9553, 11851},\n",
       "             1731: {2312, 5943, 7793, 8670, 9407, 11093, 11424},\n",
       "             1404: {2382, 2491, 3121, 7397, 9103, 9459, 10610, 12224},\n",
       "             1302: {480, 2989, 9400, 9797, 11282, 13344},\n",
       "             1082: {3304, 4580, 7777, 10630, 10830, 11579},\n",
       "             1689: {2195, 2376, 7333, 9036, 10067, 10777, 12414},\n",
       "             1356: {551, 5958, 6554, 8849, 11575, 11681, 12916},\n",
       "             688: {632, 809, 6967, 9583, 10162, 11386},\n",
       "             1935: {519, 2004, 4674, 4744, 11042, 11873},\n",
       "             1374: {1021, 6839, 8522, 10664, 12840, 12990},\n",
       "             1058: {5816,\n",
       "              6081,\n",
       "              6518,\n",
       "              9214,\n",
       "              9424,\n",
       "              10544,\n",
       "              11087,\n",
       "              11753,\n",
       "              12354,\n",
       "              12442},\n",
       "             1272: {37, 1545, 4182, 5095, 8539, 9200, 9841},\n",
       "             2644: {2312, 2615, 6437, 8492, 8507, 12403, 12605},\n",
       "             350: {21, 1378, 3450, 4856, 8561, 9097, 9455, 10474, 12566},\n",
       "             150: {787,\n",
       "              2251,\n",
       "              3488,\n",
       "              3554,\n",
       "              4296,\n",
       "              4703,\n",
       "              4947,\n",
       "              6286,\n",
       "              6699,\n",
       "              8099,\n",
       "              8155,\n",
       "              8596,\n",
       "              10379,\n",
       "              10574,\n",
       "              10710,\n",
       "              11649,\n",
       "              11697},\n",
       "             758: {5416, 6221, 7047, 7836, 10546, 13025},\n",
       "             1420: {4239, 4456, 5108, 8006, 12147},\n",
       "             3064: {5416, 6221, 7159, 10546, 12571, 12686, 13025},\n",
       "             297: {1062, 1633, 2606, 8099, 9200, 9336},\n",
       "             806: {1527,\n",
       "              4906,\n",
       "              5273,\n",
       "              7203,\n",
       "              7859,\n",
       "              7866,\n",
       "              7963,\n",
       "              9529,\n",
       "              11002,\n",
       "              11409},\n",
       "             3109: {3140, 3443, 7858, 8659, 9771, 9930, 10031, 10120, 12288},\n",
       "             1809: {1227, 1344, 4094, 5329, 9784, 10462, 11697, 12609},\n",
       "             1777: {3303, 5416, 6090, 8875, 10546, 11135, 13025},\n",
       "             2971: {164, 913, 1669, 3654, 4479, 6734},\n",
       "             2582: {512, 1457, 4378, 4475, 6988, 9066},\n",
       "             2460: {1140, 1991, 3046, 7632, 12838},\n",
       "             2384: {2847, 5004, 9623, 10382, 11163, 12746},\n",
       "             784: {2088, 2570, 4998, 5615, 5716, 6136, 12158},\n",
       "             635: {3322, 6221, 6616, 10546, 12571, 13025},\n",
       "             105: {1142, 1227, 1266, 6190, 7337, 8196, 10410},\n",
       "             82: {870, 2864, 3227, 4395, 6548, 10361, 10418, 11697},\n",
       "             599: {1160, 1363, 3868, 4582, 6407, 7088, 8509, 12089},\n",
       "             1010: {6221, 7159, 7281, 10893, 12571, 12720},\n",
       "             1461: {251, 1180, 6134, 12300},\n",
       "             ...})"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eventsForUser"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "_pickle.dump(eventsForUser, open(\"./data/PE_eventsForUser.pkl\", 'wb'))\n",
    "_pickle.dump(usersForEvent, open(\"./data/PE_usersForEvent.pkl\", 'wb'))\n",
    "\n",
    "#保存用户-活动关系矩阵R\n",
    "sio.mmwrite(\"./data/PE_userEventScores\", userEventScores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#保存用户索引表\n",
    "_pickle.dump(userIndex, open(\"./data/PE_userIndex.pkl\", 'wb'))\n",
    "#保存活动索引表\n",
    "_pickle.dump(eventIndex, open(\"./data/PE_eventIndex.pkl\", 'wb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 为了防止不必要的计算，我们找出来所有关联的用户 或者 关联的event\n",
    "# 所谓的关联用户，指的是至少在同一个event上有行为的用户pair\n",
    "# 关联的event指的是至少同一个user有行为的event pair\n",
    "uniqueUserPairs = set()\n",
    "uniqueEventPairs = set()\n",
    "for event in uniqueEvents:\n",
    "    i = eventIndex[event]\n",
    "    users = usersForEvent[i]\n",
    "    if len(users) > 2:\n",
    "        uniqueUserPairs.update(itertools.combinations(users, 2))\n",
    "        \n",
    "for user in uniqueUsers:\n",
    "    u = userIndex[user]\n",
    "    events = eventsForUser[u]\n",
    "    if len(events) > 2:\n",
    "        uniqueEventPairs.update(itertools.combinations(events, 2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{(1027, 3000),\n",
       " (3239, 468),\n",
       " (745, 2304),\n",
       " (724, 3063),\n",
       " (2353, 3142),\n",
       " (2123, 772),\n",
       " (2128, 1130),\n",
       " (2647, 3377),\n",
       " (1250, 1919),\n",
       " (2635, 208),\n",
       " (1443, 3282),\n",
       " (1432, 2544),\n",
       " (2683, 1740),\n",
       " (2217, 2275),\n",
       " (1119, 2747),\n",
       " (581, 527),\n",
       " (869, 1903),\n",
       " (1208, 1367),\n",
       " (1545, 644),\n",
       " (1234, 1791),\n",
       " (1091, 2202),\n",
       " (1568, 1251),\n",
       " (2185, 3142),\n",
       " (2217, 344),\n",
       " (544, 667),\n",
       " (1058, 29),\n",
       " (1150, 1903),\n",
       " (821, 2965),\n",
       " (2013, 2919),\n",
       " (122, 635),\n",
       " (1851, 344),\n",
       " (1703, 1499),\n",
       " (2225, 3357),\n",
       " (632, 3312),\n",
       " (2383, 3008),\n",
       " (2747, 1752),\n",
       " (274, 228),\n",
       " (97, 2683),\n",
       " (3284, 417),\n",
       " (2645, 745),\n",
       " (2094, 97),\n",
       " (1034, 2382),\n",
       " (2806, 2505),\n",
       " (1295, 841),\n",
       " (2578, 1746),\n",
       " (1173, 1745),\n",
       " (569, 2005),\n",
       " (3371, 787),\n",
       " (1649, 3057),\n",
       " (1362, 1258),\n",
       " (3212, 277),\n",
       " (2435, 719),\n",
       " (734, 2881),\n",
       " (2825, 1415),\n",
       " (868, 339),\n",
       " (2085, 3307),\n",
       " (564, 1880),\n",
       " (1336, 133),\n",
       " (1119, 666),\n",
       " (220, 1314),\n",
       " (2096, 2528),\n",
       " (1101, 3316),\n",
       " (3149, 1855),\n",
       " (634, 1740),\n",
       " (1370, 940),\n",
       " (3262, 1126),\n",
       " (1667, 3288),\n",
       " (1540, 1386),\n",
       " (3377, 956),\n",
       " (1130, 1136),\n",
       " (1570, 2037),\n",
       " (1085, 3135),\n",
       " (131, 1620),\n",
       " (719, 2005),\n",
       " (3093, 1992),\n",
       " (2930, 2202),\n",
       " (1351, 452),\n",
       " (344, 3033),\n",
       " (3383, 2446),\n",
       " (1579, 97),\n",
       " (1809, 2979),\n",
       " (3245, 253),\n",
       " (415, 760),\n",
       " (3275, 2013),\n",
       " (641, 1267),\n",
       " (788, 1362),\n",
       " (2804, 1903),\n",
       " (2247, 2473),\n",
       " (1756, 1951),\n",
       " (317, 2514),\n",
       " (359, 399),\n",
       " (1758, 2869),\n",
       " (2585, 210),\n",
       " (1673, 117),\n",
       " (1731, 1943),\n",
       " (1074, 2446),\n",
       " (645, 2860),\n",
       " (1569, 164),\n",
       " (227, 745),\n",
       " (1618, 2771),\n",
       " (1610, 1268),\n",
       " (1064, 956),\n",
       " (3257, 3304),\n",
       " (2645, 2535),\n",
       " (2896, 344),\n",
       " (2605, 256),\n",
       " (1255, 398),\n",
       " (256, 2837),\n",
       " (1458, 236),\n",
       " (1919, 999),\n",
       " (2377, 981),\n",
       " (1762, 1854),\n",
       " (1351, 2471),\n",
       " (644, 1403),\n",
       " (2972, 2280),\n",
       " (1234, 1415),\n",
       " (2423, 2446),\n",
       " (388, 1081),\n",
       " (1644, 446),\n",
       " (353, 956),\n",
       " (295, 1073),\n",
       " (634, 295),\n",
       " (2266, 2503),\n",
       " (1794, 997),\n",
       " (210, 991),\n",
       " (159, 1962),\n",
       " (3388, 1880),\n",
       " (1028, 317),\n",
       " (325, 446),\n",
       " (2069, 564),\n",
       " (1719, 2916),\n",
       " (854, 2967),\n",
       " (1233, 1001),\n",
       " (901, 1425),\n",
       " (1351, 1389),\n",
       " (2766, 3175),\n",
       " (389, 1101),\n",
       " (82, 2001),\n",
       " (582, 1922),\n",
       " (1570, 2787),\n",
       " (1217, 2889),\n",
       " (2645, 390),\n",
       " (2719, 1923),\n",
       " (2901, 1900),\n",
       " (2769, 3021),\n",
       " (2647, 344),\n",
       " (1274, 358),\n",
       " (1173, 3054),\n",
       " (1758, 236),\n",
       " (714, 1989),\n",
       " (1943, 1758),\n",
       " (266, 2667),\n",
       " (1476, 3142),\n",
       " (3283, 848),\n",
       " (1269, 417),\n",
       " (1751, 893),\n",
       " (900, 1262),\n",
       " (1117, 2881),\n",
       " (2585, 3008),\n",
       " (1776, 1851),\n",
       " (582, 2772),\n",
       " (3207, 1919),\n",
       " (1476, 2617),\n",
       " (3204, 2776),\n",
       " (2605, 1193),\n",
       " (1854, 1362),\n",
       " (976, 999),\n",
       " (2612, 1787),\n",
       " (1104, 2732),\n",
       " (480, 758),\n",
       " (2058, 1512),\n",
       " (1231, 2353),\n",
       " (1697, 1269),\n",
       " (2069, 2643),\n",
       " (1091, 622),\n",
       " (1644, 770),\n",
       " (196, 210),\n",
       " (69, 1644),\n",
       " (2503, 358),\n",
       " (1128, 2869),\n",
       " (1568, 1458),\n",
       " (881, 606),\n",
       " (2185, 3383),\n",
       " (2132, 2976),\n",
       " (1664, 2830),\n",
       " (208, 3036),\n",
       " (2904, 461),\n",
       " (848, 2005),\n",
       " (1807, 1001),\n",
       " (159, 2883),\n",
       " (357, 417),\n",
       " (69, 3265),\n",
       " (1922, 2001),\n",
       " (3332, 1739),\n",
       " (1085, 1745),\n",
       " (642, 2195),\n",
       " (866, 1193),\n",
       " (114, 1922),\n",
       " (1595, 1880),\n",
       " (771, 2605),\n",
       " (3383, 892),\n",
       " (82, 632),\n",
       " (3168, 1005),\n",
       " (3110, 3008),\n",
       " (1919, 2522),\n",
       " (2682, 2405),\n",
       " (1751, 417),\n",
       " (538, 1415),\n",
       " (1128, 1467),\n",
       " (377, 1001),\n",
       " (1557, 216),\n",
       " (2174, 461),\n",
       " (706, 1777),\n",
       " (210, 2304),\n",
       " (310, 1527),\n",
       " (734, 1007),\n",
       " (1709, 1005),\n",
       " (2644, 245),\n",
       " (2612, 1343),\n",
       " (2715, 2553),\n",
       " (1125, 2514),\n",
       " (3218, 196),\n",
       " (653, 1403),\n",
       " (1119, 2860),\n",
       " (2965, 2505),\n",
       " (2522, 997),\n",
       " (2123, 1498),\n",
       " (544, 2955),\n",
       " (1550, 3054),\n",
       " (2570, 1815),\n",
       " (3036, 3058),\n",
       " (1499, 2682),\n",
       " (344, 2280),\n",
       " (1944, 2717),\n",
       " (1537, 2393),\n",
       " (784, 3333),\n",
       " (2212, 1992),\n",
       " (1722, 507),\n",
       " (1539, 2551),\n",
       " (2111, 3054),\n",
       " (1664, 2005),\n",
       " (1085, 1173),\n",
       " (1143, 375),\n",
       " (3143, 275),\n",
       " (2308, 2647),\n",
       " (1298, 2150),\n",
       " (1796, 2553),\n",
       " (1894, 2553),\n",
       " (27, 305),\n",
       " (216, 246),\n",
       " (1758, 3172),\n",
       " (1776, 3352),\n",
       " (2717, 2522),\n",
       " (666, 2764),\n",
       " (295, 3048),\n",
       " (1652, 2031),\n",
       " (3254, 2275),\n",
       " (2094, 2955),\n",
       " (195, 999),\n",
       " (2700, 2036),\n",
       " (3283, 1992),\n",
       " (236, 1973),\n",
       " (3110, 1579),\n",
       " (1615, 1150),\n",
       " (526, 3032),\n",
       " (2418, 2739),\n",
       " (1128, 210),\n",
       " (1255, 1919),\n",
       " (2715, 2853),\n",
       " (912, 2259),\n",
       " (2123, 1894),\n",
       " (2395, 2013),\n",
       " (2254, 912),\n",
       " (1141, 1152),\n",
       " (634, 246),\n",
       " (544, 210),\n",
       " (196, 973),\n",
       " (1616, 214),\n",
       " (1777, 2488),\n",
       " (1028, 108),\n",
       " (1962, 1006),\n",
       " (1157, 256),\n",
       " (2680, 236),\n",
       " (2719, 351),\n",
       " (246, 1891),\n",
       " (1028, 2503),\n",
       " (2620, 1188),\n",
       " (3237, 2762),\n",
       " (2177, 940),\n",
       " (3265, 973),\n",
       " (133, 1101),\n",
       " (564, 1255),\n",
       " (1173, 2751),\n",
       " (1539, 649),\n",
       " (1610, 1915),\n",
       " (3173, 1973),\n",
       " (2308, 353),\n",
       " (1091, 1314),\n",
       " (2523, 1791),\n",
       " (2979, 2028),\n",
       " (2580, 2553),\n",
       " (1038, 351),\n",
       " (2640, 2212),\n",
       " (1871, 2489),\n",
       " (2674, 216),\n",
       " (981, 2042),\n",
       " (245, 346),\n",
       " (1762, 1973),\n",
       " (1126, 2240),\n",
       " (2570, 1007),\n",
       " (632, 1880),\n",
       " (2132, 1756),\n",
       " (97, 467),\n",
       " (957, 589),\n",
       " (2240, 1258),\n",
       " (2618, 1011),\n",
       " (2132, 2423),\n",
       " (1455, 1367),\n",
       " (1037, 430),\n",
       " (1415, 1676),\n",
       " (1944, 2544),\n",
       " (119, 1111),\n",
       " (2578, 2769),\n",
       " (622, 1766),\n",
       " (1173, 734),\n",
       " (105, 1789),\n",
       " (2058, 2965),\n",
       " (2860, 1215),\n",
       " (1821, 1218),\n",
       " (419, 307),\n",
       " (1074, 2633),\n",
       " (2904, 2167),\n",
       " (2825, 388),\n",
       " (297, 1279),\n",
       " (2787, 3377),\n",
       " (2186, 758),\n",
       " (1603, 2769),\n",
       " (87, 2290),\n",
       " (1519, 2289),\n",
       " (569, 2423),\n",
       " (1742, 636),\n",
       " (2153, 2477),\n",
       " (3149, 2199),\n",
       " (1834, 651),\n",
       " (1027, 377),\n",
       " (3239, 2837),\n",
       " (552, 663),\n",
       " (1269, 310),\n",
       " (1195, 1215),\n",
       " (1751, 758),\n",
       " (127, 2853),\n",
       " (1880, 1989),\n",
       " (333, 122),\n",
       " (2633, 732),\n",
       " (1610, 210),\n",
       " (3205, 2382),\n",
       " (1615, 2379),\n",
       " (3013, 1172),\n",
       " (3232, 2605),\n",
       " (1596, 897),\n",
       " (3315, 556),\n",
       " (1101, 2289),\n",
       " (2563, 1373),\n",
       " (3272, 3377),\n",
       " (3352, 1570),\n",
       " (2916, 417),\n",
       " (97, 1951),\n",
       " (1130, 127),\n",
       " (2987, 2349),\n",
       " (2, 2855),\n",
       " (210, 406),\n",
       " (208, 236),\n",
       " (671, 295),\n",
       " (3218, 503),\n",
       " (1756, 3383),\n",
       " (42, 2099),\n",
       " (2132, 2859),\n",
       " (2976, 1425),\n",
       " (3175, 2853),\n",
       " (544, 997),\n",
       " (339, 1251),\n",
       " (1150, 1989),\n",
       " (562, 1362),\n",
       " (1923, 3261),\n",
       " (1579, 719),\n",
       " (1851, 418),\n",
       " (1865, 881),\n",
       " (905, 3315),\n",
       " (3383, 1132),\n",
       " (277, 3021),\n",
       " (2696, 356),\n",
       " (1162, 2217),\n",
       " (1267, 1919),\n",
       " (2089, 2528),\n",
       " (2624, 2683),\n",
       " (1274, 929),\n",
       " (82, 1007),\n",
       " (3208, 2731),\n",
       " (105, 406),\n",
       " (997, 3058),\n",
       " (118, 3301),\n",
       " (1027, 821),\n",
       " (2103, 1847),\n",
       " (1038, 2936),\n",
       " (3265, 210),\n",
       " (3143, 2469),\n",
       " (1709, 2301),\n",
       " (195, 2929),\n",
       " (714, 2979),\n",
       " (1922, 3054),\n",
       " (1027, 1198),\n",
       " (956, 2916),\n",
       " (3198, 2383),\n",
       " (3108, 2131),\n",
       " (1787, 1362),\n",
       " (590, 2290),\n",
       " (2259, 474),\n",
       " (1336, 3066),\n",
       " (2375, 3064),\n",
       " (634, 1314),\n",
       " (1596, 3176),\n",
       " (118, 303),\n",
       " (3102, 2658),\n",
       " (2167, 2682),\n",
       " (111, 1938),\n",
       " (2731, 1080),\n",
       " (3211, 526),\n",
       " (1067, 2514),\n",
       " (2720, 1251),\n",
       " (2976, 1117),\n",
       " (1752, 1130),\n",
       " (2978, 1703),\n",
       " (2395, 2167),\n",
       " (2083, 25),\n",
       " (1258, 2379),\n",
       " (230, 3176),\n",
       " (1443, 867),\n",
       " (2620, 848),\n",
       " (2473, 1973),\n",
       " (740, 3057),\n",
       " (297, 119),\n",
       " (220, 2882),\n",
       " (821, 3140),\n",
       " (2811, 999),\n",
       " (3378, 2032),\n",
       " (635, 2853),\n",
       " (417, 1130),\n",
       " (3094, 2972),\n",
       " (195, 848),\n",
       " (1085, 719),\n",
       " (2767, 912),\n",
       " (3261, 125),\n",
       " (2128, 3377),\n",
       " (1709, 2881),\n",
       " (644, 2375),\n",
       " (3108, 124),\n",
       " (301, 1720),\n",
       " (767, 2153),\n",
       " (2585, 1989),\n",
       " (2769, 788),\n",
       " (734, 406),\n",
       " (3357, 1931),\n",
       " (2091, 288),\n",
       " (868, 2028),\n",
       " (3205, 2747),\n",
       " (3239, 1451),\n",
       " (15, 3283),\n",
       " (2912, 2600),\n",
       " (3352, 821),\n",
       " (1794, 3108),\n",
       " (2060, 2377),\n",
       " (2603, 2265),\n",
       " (1545, 122),\n",
       " (3181, 1880),\n",
       " (3218, 1250),\n",
       " (3273, 277),\n",
       " (1821, 2089),\n",
       " (3167, 1157),\n",
       " (2578, 3357),\n",
       " (1268, 764),\n",
       " (3008, 1258),\n",
       " (2680, 375),\n",
       " (3218, 2633),\n",
       " (2380, 2685),\n",
       " (1074, 277),\n",
       " (2645, 1991),\n",
       " (1037, 159),\n",
       " (3212, 3036),\n",
       " (3111, 1986),\n",
       " (320, 1916),\n",
       " (3383, 1913),\n",
       " (1028, 1610),\n",
       " (1745, 1992),\n",
       " (1703, 430),\n",
       " (82, 1655),\n",
       " (446, 3008),\n",
       " (1768, 1399),\n",
       " (1752, 2972),\n",
       " (1251, 375),\n",
       " (1037, 2308),\n",
       " (771, 2443),\n",
       " (1126, 1973),\n",
       " (1851, 2896),\n",
       " (2998, 2916),\n",
       " (569, 2624),\n",
       " (2580, 233),\n",
       " (1557, 3301),\n",
       " (706, 2764),\n",
       " (1633, 1351),\n",
       " (2245, 2806),\n",
       " (3205, 666),\n",
       " (3254, 3329),\n",
       " (2308, 468),\n",
       " (2891, 1496),\n",
       " (2096, 1234),\n",
       " (3212, 1258),\n",
       " (1550, 406),\n",
       " (3377, 2245),\n",
       " (582, 2674),\n",
       " (1132, 2541),\n",
       " (1243, 3192),\n",
       " (1852, 74),\n",
       " (2671, 2037),\n",
       " (127, 655),\n",
       " (399, 3036),\n",
       " (770, 2240),\n",
       " (454, 2393),\n",
       " (1644, 164),\n",
       " (2132, 1639),\n",
       " (653, 1821),\n",
       " (2891, 2286),\n",
       " (2123, 2936),\n",
       " (1828, 2719),\n",
       " (69, 1794),\n",
       " (2869, 2514),\n",
       " (2705, 3153),\n",
       " (2683, 2304),\n",
       " (2720, 2550),\n",
       " (770, 295),\n",
       " (2844, 452),\n",
       " (1837, 3031),\n",
       " (1752, 893),\n",
       " (848, 1919),\n",
       " (85, 796),\n",
       " (3383, 1341),\n",
       " (1616, 3304),\n",
       " (2581, 3095),\n",
       " (1703, 1010),\n",
       " (1821, 855),\n",
       " (3283, 3021),\n",
       " (2091, 3023),\n",
       " (69, 3036),\n",
       " (1745, 2929),\n",
       " (34, 2929),\n",
       " (1027, 482),\n",
       " (2645, 2869),\n",
       " (2514, 2521),\n",
       " (2679, 945),\n",
       " (2917, 3120),\n",
       " (3232, 3000),\n",
       " (1419, 124),\n",
       " (2434, 3211),\n",
       " (1758, 1341),\n",
       " (900, 1476),\n",
       " (430, 3259),\n",
       " (1649, 821),\n",
       " (3241, 2622),\n",
       " (750, 256),\n",
       " (1153, 1756),\n",
       " (771, 1181),\n",
       " (538, 3248),\n",
       " (2167, 3366),\n",
       " (1250, 1880),\n",
       " (939, 2003),\n",
       " (1130, 482),\n",
       " (724, 1399),\n",
       " (482, 1894),\n",
       " (3257, 1776),\n",
       " (1815, 1951),\n",
       " (597, 2031),\n",
       " (196, 1992),\n",
       " (1685, 1718),\n",
       " (1187, 2477),\n",
       " (3176, 480),\n",
       " (1141, 1762),\n",
       " (1639, 295),\n",
       " (3218, 2001),\n",
       " (2696, 2164),\n",
       " (2804, 3325),\n",
       " (1217, 1074),\n",
       " (872, 3192),\n",
       " (2579, 1913),\n",
       " (671, 1805),\n",
       " (2097, 277),\n",
       " (1545, 2308),\n",
       " (1745, 848),\n",
       " (1173, 295),\n",
       " (2111, 2624),\n",
       " (788, 1915),\n",
       " (1267, 1992),\n",
       " (2459, 1847),\n",
       " (2308, 2825),\n",
       " (1809, 999),\n",
       " (2620, 2762),\n",
       " (2304, 1560),\n",
       " (3149, 2640),\n",
       " (3265, 303),\n",
       " (2825, 1130),\n",
       " (275, 2541),\n",
       " (2529, 2535),\n",
       " (635, 159),\n",
       " (3158, 2278),\n",
       " (2523, 2153),\n",
       " (678, 3318),\n",
       " (1718, 2240),\n",
       " (1797, 291),\n",
       " (3378, 2541),\n",
       " (1709, 727),\n",
       " (2186, 2123),\n",
       " (2647, 2896),\n",
       " (1011, 3196),\n",
       " (644, 233),\n",
       " (1603, 108),\n",
       " (2683, 1903),\n",
       " (1880, 999),\n",
       " (3036, 117),\n",
       " (2830, 2732),\n",
       " (1807, 3366),\n",
       " (1351, 2686),\n",
       " (1550, 2240),\n",
       " (1128, 2535),\n",
       " (1067, 2383),\n",
       " (2185, 997),\n",
       " (719, 2032),\n",
       " (1752, 2037),\n",
       " (2099, 1343),\n",
       " (2766, 2033),\n",
       " (3383, 2469),\n",
       " (2977, 3257),\n",
       " (740, 2916),\n",
       " (1187, 1215),\n",
       " (1616, 2523),\n",
       " (69, 2132),\n",
       " (2633, 2212),\n",
       " (767, 377),\n",
       " (2762, 2304),\n",
       " (2717, 2212),\n",
       " (3135, 2875),\n",
       " (3254, 2037),\n",
       " (2308, 3232),\n",
       " (2153, 1807),\n",
       " (1689, 1490),\n",
       " (3239, 3259),\n",
       " (1027, 1751),\n",
       " (1101, 1262),\n",
       " (1601, 238),\n",
       " (1198, 3000),\n",
       " (2947, 1111),\n",
       " (195, 295),\n",
       " (1415, 2488),\n",
       " (127, 2395),\n",
       " (2167, 430),\n",
       " (3232, 3275),\n",
       " (667, 196),\n",
       " (3377, 2998),\n",
       " (923, 382),\n",
       " (1091, 1756),\n",
       " (582, 2349),\n",
       " (1797, 2652),\n",
       " (1667, 2747),\n",
       " (1775, 2874),\n",
       " (1688, 1962),\n",
       " (3375, 2028),\n",
       " (2570, 69),\n",
       " (1181, 3239),\n",
       " (770, 2579),\n",
       " (1951, 1991),\n",
       " (454, 2056),\n",
       " (3086, 1157),\n",
       " (2423, 2469),\n",
       " (1312, 398),\n",
       " (597, 764),\n",
       " (2847, 1351),\n",
       " (1595, 3149),\n",
       " (1258, 3058),\n",
       " (3388, 1973),\n",
       " (2715, 2033),\n",
       " (1067, 1524),\n",
       " (3273, 1855),\n",
       " (1546, 2807),\n",
       " (1341, 2521),\n",
       " (512, 2717),\n",
       " (1097, 1913),\n",
       " (1809, 1903),\n",
       " (288, 1217),\n",
       " (108, 1346),\n",
       " (317, 2929),\n",
       " (3094, 2391),\n",
       " (1143, 1258),\n",
       " (131, 3341),\n",
       " (1362, 399),\n",
       " (292, 869),\n",
       " (1449, 2152),\n",
       " (1746, 3054),\n",
       " (3235, 939),\n",
       " (230, 2037),\n",
       " (2212, 2544),\n",
       " (1703, 3140),\n",
       " (1603, 2955),\n",
       " (1610, 1685),\n",
       " (1633, 1756),\n",
       " (2682, 2186),\n",
       " (2435, 1991),\n",
       " (2382, 1108),\n",
       " (2647, 1752),\n",
       " (2972, 230),\n",
       " (1432, 3273),\n",
       " (1281, 2168),\n",
       " (118, 1314),\n",
       " (3262, 195),\n",
       " (1709, 452),\n",
       " (1820, 1367),\n",
       " (2972, 2377),\n",
       " (208, 406),\n",
       " (2111, 1787),\n",
       " (2060, 1195),\n",
       " (2875, 2686),\n",
       " (3135, 1780),\n",
       " (2358, 1916),\n",
       " (1780, 1903),\n",
       " (69, 1655),\n",
       " (2540, 119),\n",
       " (1815, 1644),\n",
       " (3167, 706),\n",
       " (1847, 346),\n",
       " (2058, 3176),\n",
       " (3175, 2703),\n",
       " (3077, 2379),\n",
       " (1314, 1855),\n",
       " (2563, 3021),\n",
       " (1258, 1837),\n",
       " (34, 97),\n",
       " (2058, 2703),\n",
       " (1085, 1740),\n",
       " (2380, 1631),\n",
       " (1346, 1484),\n",
       " (236, 2859),\n",
       " (1746, 3378),\n",
       " (114, 1951),\n",
       " (1595, 1855),\n",
       " (1579, 2514),\n",
       " (2578, 1950),\n",
       " (69, 2881),\n",
       " (1685, 2225),\n",
       " (767, 1130),\n",
       " (1616, 2766),\n",
       " (854, 2979),\n",
       " (2853, 2876),\n",
       " (566, 195),\n",
       " (2682, 2382),\n",
       " (569, 2185),\n",
       " (3143, 2383),\n",
       " (2859, 1931),\n",
       " (1108, 3254),\n",
       " (179, 2005),\n",
       " (2580, 3275),\n",
       " (2762, 210),\n",
       " (2725, 46),\n",
       " (1557, 195),\n",
       " (3257, 2528),\n",
       " (310, 1512),\n",
       " (3140, 1923),\n",
       " (418, 482),\n",
       " (3198, 2469),\n",
       " (2167, 3259),\n",
       " (2570, 3293),\n",
       " (1250, 2031),\n",
       " (956, 2766),\n",
       " (3312, 2544),\n",
       " (360, 813),\n",
       " (2466, 1330),\n",
       " (275, 2032),\n",
       " (164, 869),\n",
       " (1550, 2579),\n",
       " (2069, 1687),\n",
       " (2383, 31),\n",
       " (3328, 976),\n",
       " (2099, 1740),\n",
       " (3275, 353),\n",
       " (1685, 208),\n",
       " (784, 3354),\n",
       " (1081, 468),\n",
       " (108, 714),\n",
       " (1745, 973),\n",
       " (1157, 855),\n",
       " (69, 800),\n",
       " (2380, 1251),\n",
       " (2624, 2881),\n",
       " (3288, 2280),\n",
       " (1569, 1603),\n",
       " (230, 893),\n",
       " (1038, 3154),\n",
       " (3094, 2682),\n",
       " (650, 3282),\n",
       " (3254, 2308),\n",
       " (1343, 973),\n",
       " (644, 2553),\n",
       " (2882, 2028),\n",
       " (1057, 60),\n",
       " (2241, 796),\n",
       " (1922, 3320),\n",
       " (105, 3301),\n",
       " (2585, 1891),\n",
       " (2375, 893),\n",
       " (2119, 3307),\n",
       " (1034, 1512),\n",
       " (1068, 1620),\n",
       " (2167, 767),\n",
       " (667, 277),\n",
       " (2715, 2904),\n",
       " (97, 1389),\n",
       " (764, 1815),\n",
       " (2762, 1805),\n",
       " (3320, 2031),\n",
       " (3057, 1791),\n",
       " (1688, 377),\n",
       " (512, 1766),\n",
       " (2540, 1279),\n",
       " (1780, 999),\n",
       " (3375, 1341),\n",
       " (2607, 3239),\n",
       " (770, 1314),\n",
       " (2111, 788),\n",
       " (1157, 2998),\n",
       " (2955, 114),\n",
       " (2717, 1871),\n",
       " (597, 973),\n",
       " (246, 2489),\n",
       " (1215, 2825),\n",
       " (1644, 2541),\n",
       " (2441, 2197),\n",
       " (477, 991),\n",
       " (2242, 1012),\n",
       " (1150, 854),\n",
       " (562, 295),\n",
       " (1809, 1432),\n",
       " (452, 3031),\n",
       " (2620, 1153),\n",
       " (1798, 1272),\n",
       " (767, 482),\n",
       " (3032, 1820),\n",
       " (398, 745),\n",
       " (131, 2618),\n",
       " (25, 2083),\n",
       " (1569, 788),\n",
       " (2091, 2477),\n",
       " (2186, 159),\n",
       " (238, 2620),\n",
       " (2681, 2365),\n",
       " (1451, 2375),\n",
       " (538, 1752),\n",
       " (3248, 3366),\n",
       " (734, 2349),\n",
       " (317, 999),\n",
       " (2266, 1725),\n",
       " (1269, 1821),\n",
       " (1274, 2473),\n",
       " (3064, 590),\n",
       " (2845, 417),\n",
       " (3205, 2965),\n",
       " (2635, 597),\n",
       " (1900, 1789),\n",
       " (2245, 3329),\n",
       " (3077, 1314),\n",
       " (2058, 1828),\n",
       " (2528, 2671),\n",
       " (3223, 2769),\n",
       " (1188, 1992),\n",
       " (1889, 2125),\n",
       " (2245, 1894),\n",
       " (3135, 2469),\n",
       " (1828, 3057),\n",
       " (2976, 303),\n",
       " (1796, 1851),\n",
       " (641, 303),\n",
       " (670, 2955),\n",
       " (3066, 2526),\n",
       " (2881, 358),\n",
       " (3181, 2471),\n",
       " (3302, 2294),\n",
       " (2089, 3154),\n",
       " (2645, 1745),\n",
       " (3328, 163),\n",
       " (2772, 1125),\n",
       " (3212, 2762),\n",
       " (1267, 3021),\n",
       " (357, 893),\n",
       " (641, 2228),\n",
       " (3168, 2294),\n",
       " (1697, 2787),\n",
       " (2097, 2652),\n",
       " (2896, 2505),\n",
       " (2403, 119),\n",
       " (2091, 2153),\n",
       " (1603, 2804),\n",
       " (214, 2405),\n",
       " (34, 3031),\n",
       " (1117, 108),\n",
       " (1578, 526),\n",
       " (2523, 1130),\n",
       " (2640, 154),\n",
       " (1341, 1432),\n",
       " (2103, 1390),\n",
       " (3175, 1162),\n",
       " (2645, 2955),\n",
       " (179, 1250),\n",
       " (644, 3284),\n",
       " (975, 3186),\n",
       " (275, 2955),\n",
       " (1415, 3057),\n",
       " (105, 2522),\n",
       " (1922, 2503),\n",
       " (3173, 3273),\n",
       " (15, 2541),\n",
       " (1633, 246),\n",
       " (1476, 2633),\n",
       " (1038, 956),\n",
       " (603, 2167),\n",
       " (3135, 452),\n",
       " (2091, 1215),\n",
       " (3301, 940),\n",
       " (275, 292),\n",
       " (1268, 2859),\n",
       " (351, 1649),\n",
       " (2111, 1644),\n",
       " (3181, 390),\n",
       " (1027, 3154),\n",
       " (1114, 645),\n",
       " (2761, 3263),\n",
       " (2099, 2304),\n",
       " (1664, 3262),\n",
       " (452, 500),\n",
       " (1268, 398),\n",
       " (1181, 2245),\n",
       " (1157, 1187),\n",
       " (1130, 1791),\n",
       " (2844, 210),\n",
       " (2290, 2477),\n",
       " (1546, 3262),\n",
       " (3259, 821),\n",
       " (82, 2469),\n",
       " (2929, 1950),\n",
       " (1067, 406),\n",
       " (2089, 2443),\n",
       " (758, 1863),\n",
       " (2880, 2442),\n",
       " (1258, 375),\n",
       " (1579, 2383),\n",
       " (2853, 2977),\n",
       " (317, 1903),\n",
       " (3147, 2380),\n",
       " (3245, 2527),\n",
       " (645, 2217),\n",
       " (666, 3000),\n",
       " (1012, 2874),\n",
       " (2679, 671),\n",
       " (2469, 2544),\n",
       " (771, 3094),\n",
       " (2605, 3352),\n",
       " (1550, 1188),\n",
       " (2167, 1451),\n",
       " (2811, 2875),\n",
       " (1931, 446),\n",
       " (2444, 454),\n",
       " (1410, 1111),\n",
       " (893, 417),\n",
       " (3352, 1923),\n",
       " (1794, 2486),\n",
       " (1098, 3375),\n",
       " (1216, 1258),\n",
       " (671, 2349),\n",
       " (1234, 415),\n",
       " (2228, 1789),\n",
       " (1766, 2138),\n",
       " (2715, 2153),\n",
       " (86, 2526),\n",
       " (634, 1295),\n",
       " (1923, 1187),\n",
       " (2996, 2678),\n",
       " (2529, 1655),\n",
       " (1132, 997),\n",
       " (544, 390),\n",
       " (1667, 1010),\n",
       " (562, 1267),\n",
       " (2212, 1880),\n",
       " (807, 1515),\n",
       " (1067, 82),\n",
       " (1162, 2806),\n",
       " (1697, 2411),\n",
       " (131, 270),\n",
       " ...}"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "uniqueUserPairs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "#保存用户-事件关系对索引表\n",
    "_pickle.dump(uniqueUserPairs, open(\"./data/FE_uniqueUserPairs.pkl\", 'wb'))\n",
    "_pickle.dump(uniqueEventPairs, open(\"./data/PE_uniqueEventPairs.pkl\", 'wb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
